p_table <- function(tab_data, ...) {
tab_data_2 <- deparse(substitute(tab_data))
table_p <- do.call(CreateTableOne,
list(data = as.name(tab_data_2), includeNA = TRUE, ...))
table_p_out <- print(table_p,
showAllLevels = TRUE,
printToggle = FALSE)
kable(table_p_out,
align = "c")
}
uni_var <- function(test_var, data_imp) {
cat("_________________________________________________")
cat("\n")
cat(" \n##", test_var)
cat("\n")
cat("_________________________________________________")
cat("\n")
f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
as.name(test_var),
sep = " ~ " ))
data_imp_2 <- deparse(substitute(data_imp))
km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
print(km_fit)
cat("\n")
print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Univariable Cox Proportional Hazard Model for: ", test_var)
cat("\n")
cat("\n")
n_levels <- nlevels(data_imp[[test_var]])
if(n_levels == 1){
print("Only one level, no Cox model performed")
cat("\n")
} else {
cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
print(summary(cox_fit))
cat("\n")
do.call("ggforest",
list(model = cox_fit, data = as.name(data_imp_2)))
}
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
p <- do.call("ggsurvplot",
list(fit = km_fit, data = as.name(data_imp_2),
palette = "jco", censor = FALSE, legend = "right",
linetype = "strata", xlab = "Time (Months)"))
print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
"AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
"MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
"UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
"YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
"DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
"REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
"TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
"CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
"CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
"CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
"CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
"CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
"CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
"CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
"CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
"CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
"CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
"CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
"RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
"RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
"REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
"RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
"RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
"REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
"DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
"RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
"PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
"DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
"RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
"RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
"METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
"METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLextr <- read_fwf('NCDBPUF_NHLExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
breast <- read_fwf('NCDBPUF_Breast.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vulva <- read_fwf('NCDBPUF_Vulva.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vagina <- read_fwf('NCDBPUF_Vagina.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
penis <- read_fwf('NCDBPUF_Penis.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otleuk <- read_fwf('NCDBPUF_OtLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otheracuteleuk <- read_fwf('NCDBPUF_OtAcLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
ALL <- read_fwf('NCDBPUF_ALymLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast,
vulva, vagina, penis, NHLextr, otleuk, otheracuteleuk, ALL)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina,
penis, NHLextr, otleuk, otheracuteleuk, ALL)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C000",
"C001",
"C002",
"C003",
"C004",
"C005",
"C006",
"C008",
"C009",
"C019",
"C020",
"C021",
"C022",
"C023",
"C024",
"C028",
"C029",
"C030",
"C031",
"C039",
"C040",
"C041",
"C048",
"C049",
"C050",
"C051",
"C052",
"C058",
"C059",
"C060",
"C061",
"C062",
"C068",
"C069",
"C079",
"C098",
"C099",
"C111",
"C142",
"C300",
"C379",
"C420",
"C422",
"C424",
#skin/melanoma
"C440", "C441", "C442", "C443", "C444", "C445",
"C446", "C447", "C448", "C449",
#breast - nipple
"C500",
#vagina/vulva
"C510", "C511", "C512", "C518", "C519", "C529",
#penis
"C600", "C601", "C602", "C608", "C609", "C639",
"C770",
"C771",
"C772",
"C773",
"C774",
"C775",
"C778",
"C779"),
SITE_TEXT = c(
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2 External Lip: NOS",
"C00.3 Lip: Upper Mucosa",
"C00.4 Lip: Lower Mucosa",
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure",
"C00.8 Lip: Overlapping",
"C00.9 Lip NOS",
"C01.9 Tongue: Base NOS",
"C02.0 Tongue: Dorsal NOS",
"C02.1 Tongue: Border, Tip",
"C02.2 Tongue: Ventral NOS",
"C02.3 Tongue: Anterior NOS",
"C02.4 Lingual Tonsil",
"C02.8 Tongue: Overlapping",
"C02.9 Tongue: NOS",
"C03.0 Gum: Upper",
"C03.1 Gum: Lower",
"C03.9 Gum NOS",
"C04.0 Mouth: Anterior Floor",
"C04.1 Mouth: Lateral Floor",
"C04.8 Mouth: Overlapping Floor",
"C04.9 Floor of Mouth NOS",
"C05.0 Hard Palate",
"C05.1 Soft Palate NOS",
"C05.2 Uvula",
"C05.8 Palate: Overlapping",
"C05.9 Palate NOS",
"C06.0 Cheek Mucosa",
"C06.1 Mouth: Vestibule",
"C06.2 Retromolar Area",
"C06.8 Mouth: Other Overlapping",
"C06.9 Mouth NOS",
"C07.9 Parotid Gland",
"C09.8 Tonsil: Overlapping",
"C09.9 Tonsil NOS",
"C11.1 Nasopharynx: Poster Wall",
"C14.2 Waldeyer Ring",
"C30.0 Nasal Cavity",
"C37.9 Thymus",
"C42.0 Blood",
"C42.2 Spleen",
"C42.4 Hematopoietic NOS",
#skin
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS",
#breast
"C50.0 Nipple",
#vulva/vagina
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C52.9 Vagina, NOS",
#penis
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS",
"C77.0 Lymph Nodes: HeadFaceNeck",
"C77.1 Intrathoracic Lymph Nodes",
"C77.2 Intra-abdominal LymphNodes",
"C77.3 Lymph Nodes of axilla or arm ",
"C77.4 Lymph Nodes: Leg",
"C77.5 Pelvic Lymph Nodes",
"C77.8 Lymph Nodes: multiple region",
"C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE)
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS", "RAD_REGIONAL_DOSE_CGY",
"RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS",
"DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
"RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
"Community Cancer Program" = "1",
"Comprehensive Comm Ca Program" = "2",
"Academic/Research Program" = "3",
"Integrated Network Ca Program" = "4",
"Other" = "9")) %>%
mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
"New England" = "1",
"Middle Atlantic" = "2",
"South Atlantic" = "3",
"East North Central" = "4",
"East South Central" = "5",
"West North Central" = "6",
"West South Central" = "7",
"Mountain" = "8",
"Pacific" = "9",
"out of US" = "0")) %>%
mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
"Northeast" = c("1", "2"),
"South" = c("3", "7"),
"Midwest" = c("4", "5", "6"),
"West" = c("8", "9"))) %>%
mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
mutate(SEX_F = fct_recode(SEX,
"Male" = "1",
"Female" = "2")) %>%
mutate(RACE_F = fct_collapse(RACE,
"White" = c("01"),
"Black" = c("02"),
"Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
"16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
"32", "96", "97"),
"Other/Unk" = c("03", "98", "99"))) %>%
mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
"Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
"No" = c("0"),
"Unknown" = c("9"))) %>%
mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
"None" = "0",
"Private" = "1",
"Medicaid" = "2",
"Medicare" = "3",
"Other Government" = "4",
"Unknown" = "9")) %>%
mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
"Private")) %>%
mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
"Less than $38,000" = "1",
"$38,000 - $47,999" = "2",
"$48,000 - $62,999" = "3",
"$63,000 +" = "4")) %>%
mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
"21% or more" = "1",
"13 - 20.9%" = "2",
"7 - 12.9%" = "3",
"Less than 7%" = "4")) %>%
mutate(U_R_F = fct_collapse(UR_CD_13,
"Metro" = c("1", "2", "3"),
"Urban" = c("4", "5", "6", "7"),
"Rural" = c("8", "9"))) %>%
mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
All_Part_Prim = c("10", "11", "12", "13",
"14", "20", "21", "22"),
Other_Facility = c("00"))) %>%
mutate(GRADE_F = fct_recode(GRADE,
"Gr I: Well Diff" = "1",
"Gr II: Mod Diff" = "2",
"Gr III: Poor Diff" = "3",
"Gr IV: Undiff/Anaplastic" = "4",
"NA/Unkown" = "9")) %>%
mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
"N_A" = "88")) %>%
mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
"1")) %>%
mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
"N_A" = "88")) %>%
mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
"1")) %>%
mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
"N_A" = "88")) %>%
mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
"N_A" = "88")) %>%
mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
"No Residual" = "0",
"Residual, NOS" = "1",
"Microscopic Resid" = "2",
"Macroscopic Resid" = "3",
"Not evaluable" = "7",
"No surg" = "8",
"Unknown" = "9")) %>%
mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
"Yes" = c("1", "2", "3"),
"No" = c("0"),
"No surg/Unk/NA" = c("7", "8", "9"))) %>%
mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
"No_Surg_or_No_Readmit" = "0",
"Unplan_Readmit_Same" = "1",
"Plan_Readmit_Same" = "2",
"PlanUnplan_Same" = "3",
"Unknown" = "4")) %>%
mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
"None" = "0",
"Beam Radiation" = "1",
"Radioactive Implants" = "2",
"Radioisotopes" = "3",
"Beam + Imp or Isotopes" = "4",
"Radiation, NOS" = "5",
"Unknown" = "9")) %>%
mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
"Alive_30" = "0",
"Dead_30" = "1",
"Unknown" = "9")) %>%
mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
"Alive_90" = "0",
"Dead_90" = "1",
"Unknown" = "9")) %>%
mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
"Neg_LymphVasc_Inv" = "0",
"Pos_LumphVasc_Inv" = "1",
"N_A" = "8",
"Unknown" = "9")) %>%
mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
"No_Surg" = "0",
"Robot_Assist" = "1",
"Robot_to_Open" = "2",
"Endo_Lap" = "3",
"Endo_Lap_to_Open" = "4",
"Open_Unknown" = "5",
"Unknown" = "9")) %>%
mutate(All = "All") %>%
mutate(All = factor(All)) %>%
mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
"Surg performed" = "0",
"Surg not recommended" = "1",
"No surg due to pt factors" = "2",
"No surg, pt died" = "5",
"Surg rec, not done" = "6",
"Surg rec, pt refused" = "7",
"Surg rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
"Yes",
ifelse(REASON_FOR_NO_SURGERY == "9",
"Ukn",
"No"))) %>%
mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
SURGERY_YN == "No" ~ FALSE,
TRUE ~ NA)) %>%
mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
"Rad performed" = "0",
"Rad not recommended" = "1",
"No Rad due to pt factors" = "2",
"No Rad, pt died" = "5",
"Rad rec, not done" = "6",
"Rad rec, pt refused" = "7",
"Rad rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
"Yes",
ifelse(REASON_FOR_NO_RADIATION == "9",
NA,
"No"))) %>%
mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
"None or Surg or Rad" = "0",
"Rad before Surg" = "2",
"Surg before Rad" = "3",
"Rad before and after Surg" = "4",
"Intraop Rad" = "5",
"Intraop Rad plus other" = "6",
"Unknown" = "9")) %>%
mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Surg Alone",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Rad Alone",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
"No Treatment",
ifelse(RX_SUMM_SURGRAD_SEQ == "2",
"Rad then Surg",
ifelse(RX_SUMM_SURGRAD_SEQ == "3",
"Surg then Rad",
ifelse(RX_SUMM_SURGRAD_SEQ == "4",
"Rad before and after Surg",
"Other"))))))) %>%
mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
"Surg Alone",
"Surg then Rad",
"Rad Alone")) %>%
mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01", "02", "03"),
"Ukn" = c("88", "99"))) %>%
mutate(IMMUNO_YN = fct_collapse(RX_SUMM_IMMUNOTHERAPY,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01"),
"Ukn" = c("88", "99"))) %>%
mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Surg, No rad, No Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Rad, No Surg, No Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"No Surg, No Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
"Rad then Surg, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
"Surg then Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
"Rad before and after Surg, No Chemo",
ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Surg, No rad, Yes Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Rad, No Surg, Yes Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"No Surg, No Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
"Rad then Surg, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
"Surg then Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
"Rad before and after Surg, Yes Chemo",
"Other"))))))))))))) %>%
mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
mutate(T_SIZE = ifelse(T_SIZE == 0,
"No Tumor",
ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
"< 1 cm",
ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
"1-2 cm",
ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
"2-3 cm",
ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
"3-4 cm",
ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
"4-5 cm",
ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
"5-6 cm",
ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
T_SIZE == 980 | T_SIZE == 989 |
T_SIZE == 997,
">6 cm",
ifelse(T_SIZE == 988 | T_SIZE == 999,
"NA_unk",
"Microscopic focus")))))))))) %>%
mutate(T_SIZE = factor(T_SIZE)) %>%
mutate(T_SIZE = fct_relevel(T_SIZE,
"No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
"4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
CS_METS_DX_BONE == "1" ~ "Bone",
CS_METS_DX_BRAIN == "1" ~ "Brain",
CS_METS_DX_LIVER == "1" ~ "Liver",
TRUE ~ "None/Other/Unk/NA")) %>%
mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
"Non-Expansion State" = "0",
"Jan 2014 Expansion States" = "1",
"Early Expansion States (2010-13)" = "2",
"Late Expansion States (> Jan 2014)" = "3",
"Suppressed for Ages 0 - 39" = "9")) %>%
mutate(EXPN_GROUP = case_when(MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in%
c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013")) %>%
mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>%
mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No" &
IMMUNO_YN == "No", FALSE,
ifelse(CHEMO_YN == "Ukn", NA,
TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
"HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
"CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
"BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
"MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
mutate_at(fact_vars_2, funs(factor(.)))
Table of variables for all cases:
data <- data %>% droplevels()
p_table(data,
vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY", "AGE", "AGE_F", "AGE_40",
"SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F",
"INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
"SITE_TEXT", "HISTOLOGY", "BEHAVIOR", "GRADE_F",
"DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
"READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS",
"LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
"SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "IMMUNO_YN", "Tx_YN", "mets_at_dx",
"MEDICAID_EXPN_CODE", "EXPN_GROUP", "YEAR_OF_DIAGNOSIS"))
| n |
|
5465 |
| FACILITY_TYPE_F (%) |
Community Cancer Program |
111 ( 2.0) |
|
Comprehensive Comm Ca Program |
537 ( 9.8) |
|
Academic/Research Program |
3589 ( 65.7) |
|
Integrated Network Ca Program |
259 ( 4.7) |
|
NA |
969 ( 17.7) |
| FACILITY_LOCATION_F (%) |
New England |
256 ( 4.7) |
|
Middle Atlantic |
1104 ( 20.2) |
|
South Atlantic |
968 ( 17.7) |
|
East North Central |
711 ( 13.0) |
|
East South Central |
237 ( 4.3) |
|
West North Central |
284 ( 5.2) |
|
West South Central |
252 ( 4.6) |
|
Mountain |
226 ( 4.1) |
|
Pacific |
458 ( 8.4) |
|
NA |
969 ( 17.7) |
| FACILITY_GEOGRAPHY (%) |
Northeast |
1360 ( 24.9) |
|
South |
1220 ( 22.3) |
|
Midwest |
1232 ( 22.5) |
|
West |
684 ( 12.5) |
|
NA |
969 ( 17.7) |
| AGE (mean (sd)) |
|
55.79 (17.20) |
| AGE_F (%) |
(0,54] |
2367 ( 43.3) |
|
(54,64] |
1294 ( 23.7) |
|
(64,74] |
1075 ( 19.7) |
|
(74,100] |
728 ( 13.3) |
|
NA |
1 ( 0.0) |
| AGE_40 (%) |
(0,40] |
1033 ( 18.9) |
|
(40,100] |
4431 ( 81.1) |
|
NA |
1 ( 0.0) |
| SEX_F (%) |
Male |
3028 ( 55.4) |
|
Female |
2437 ( 44.6) |
| RACE_F (%) |
White |
3906 ( 71.5) |
|
Black |
1152 ( 21.1) |
|
Other/Unk |
224 ( 4.1) |
|
Asian |
183 ( 3.3) |
| HISPANIC (%) |
No |
4855 ( 88.8) |
|
Yes |
358 ( 6.6) |
|
Unknown |
252 ( 4.6) |
| INSURANCE_F (%) |
Private |
3017 ( 55.2) |
|
None |
211 ( 3.9) |
|
Medicaid |
336 ( 6.1) |
|
Medicare |
1677 ( 30.7) |
|
Other Government |
83 ( 1.5) |
|
Unknown |
141 ( 2.6) |
| INCOME_F (%) |
Less than $38,000 |
960 ( 17.6) |
|
$38,000 - $47,999 |
1133 ( 20.7) |
|
$48,000 - $62,999 |
1359 ( 24.9) |
|
$63,000 + |
1986 ( 36.3) |
|
NA |
27 ( 0.5) |
| EDUCATION_F (%) |
21% or more |
931 ( 17.0) |
|
13 - 20.9% |
1319 ( 24.1) |
|
7 - 12.9% |
1699 ( 31.1) |
|
Less than 7% |
1490 ( 27.3) |
|
NA |
26 ( 0.5) |
| U_R_F (%) |
Metro |
4722 ( 86.4) |
|
Urban |
537 ( 9.8) |
|
Rural |
69 ( 1.3) |
|
NA |
137 ( 2.5) |
| CROWFLY (mean (sd)) |
|
41.96 (115.14) |
| CDCC_TOTAL_BEST (%) |
0 |
4932 ( 90.2) |
|
1 |
413 ( 7.6) |
|
2 |
88 ( 1.6) |
|
3 |
32 ( 0.6) |
| SITE_TEXT (%) |
C44.0 Skin of lip, NOS |
13 ( 0.2) |
|
C44.1 Eyelid |
12 ( 0.2) |
|
C44.2 External ear |
6 ( 0.1) |
|
C44.3 Skin of ear and unspecified parts of face |
164 ( 3.0) |
|
C44.4 Skin of scalp and neck |
66 ( 1.2) |
|
C44.5 Skin of trunk |
864 ( 15.8) |
|
C44.6 Skin of upper limb and shoulder |
296 ( 5.4) |
|
C44.7 Skin of lower limb and hip |
557 ( 10.2) |
|
C44.8 Overlapping lesion of skin |
515 ( 9.4) |
|
C44.9 Skin, NOS |
2969 ( 54.3) |
|
C51.9 Vulva, NOS |
2 ( 0.0) |
|
C60.9 Penis |
1 ( 0.0) |
| HISTOLOGY (%) |
9700 |
5465 (100.0) |
| BEHAVIOR (%) |
3 |
5465 (100.0) |
| GRADE_F (%) |
Gr I: Well Diff |
4 ( 0.1) |
|
Gr II: Mod Diff |
1 ( 0.0) |
|
5 |
3953 ( 72.3) |
|
6 |
10 ( 0.2) |
|
7 |
1 ( 0.0) |
|
8 |
2 ( 0.0) |
|
NA/Unkown |
1494 ( 27.3) |
| DX_STAGING_PROC_DAYS (mean (sd)) |
|
4.59 (69.73) |
| TNM_CLIN_T (%) |
N_A |
10 ( 0.2) |
|
c1 |
1654 ( 30.3) |
|
c1A |
246 ( 4.5) |
|
c1B |
118 ( 2.2) |
|
c2 |
788 ( 14.4) |
|
c2A |
82 ( 1.5) |
|
c2B |
111 ( 2.0) |
|
c3 |
376 ( 6.9) |
|
c4 |
289 ( 5.3) |
|
cX |
1643 ( 30.1) |
|
NA |
148 ( 2.7) |
| TNM_CLIN_N (%) |
N_A |
9 ( 0.2) |
|
c0 |
3294 ( 60.3) |
|
c1 |
151 ( 2.8) |
|
c1A |
8 ( 0.1) |
|
c1B |
5 ( 0.1) |
|
c2 |
23 ( 0.4) |
|
c2A |
1 ( 0.0) |
|
c2B |
4 ( 0.1) |
|
c3 |
45 ( 0.8) |
|
cX |
1793 ( 32.8) |
|
NA |
132 ( 2.4) |
| TNM_CLIN_M (%) |
N_A |
9 ( 0.2) |
|
c0 |
5102 ( 93.4) |
|
c1 |
45 ( 0.8) |
|
NA |
309 ( 5.7) |
| TNM_CLIN_STAGE_GROUP (%) |
1 |
304 ( 5.6) |
|
1A |
2216 ( 40.5) |
|
1B |
1151 ( 21.1) |
|
2 |
32 ( 0.6) |
|
2A |
97 ( 1.8) |
|
2B |
413 ( 7.6) |
|
3 |
55 ( 1.0) |
|
3A |
178 ( 3.3) |
|
3B |
71 ( 1.3) |
|
4 |
57 ( 1.0) |
|
4A |
62 ( 1.1) |
|
4A1 |
29 ( 0.5) |
|
4A2 |
19 ( 0.3) |
|
4B |
50 ( 0.9) |
|
N_A |
2 ( 0.0) |
|
99 |
726 ( 13.3) |
|
NA |
3 ( 0.1) |
| TNM_PATH_T (%) |
N_A |
12 ( 0.2) |
|
p1 |
780 ( 14.3) |
|
p1A |
89 ( 1.6) |
|
p1B |
41 ( 0.8) |
|
p2 |
339 ( 6.2) |
|
p2A |
19 ( 0.3) |
|
p2B |
31 ( 0.6) |
|
p3 |
155 ( 2.8) |
|
p4 |
132 ( 2.4) |
|
pX |
2097 ( 38.4) |
|
NA |
1770 ( 32.4) |
| TNM_PATH_N (%) |
N_A |
10 ( 0.2) |
|
p0 |
738 ( 13.5) |
|
p1 |
36 ( 0.7) |
|
p1A |
3 ( 0.1) |
|
p1B |
2 ( 0.0) |
|
p2 |
12 ( 0.2) |
|
p2B |
1 ( 0.0) |
|
p3 |
15 ( 0.3) |
|
pX |
2950 ( 54.0) |
|
NA |
1698 ( 31.1) |
| TNM_PATH_M (%) |
N_A |
8 ( 0.1) |
|
p1 |
18 ( 0.3) |
|
pX |
2213 ( 40.5) |
|
NA |
3226 ( 59.0) |
| TNM_PATH_STAGE_GROUP (%) |
1 |
141 ( 2.6) |
|
1A |
589 ( 10.8) |
|
1B |
255 ( 4.7) |
|
2 |
14 ( 0.3) |
|
2A |
33 ( 0.6) |
|
2B |
113 ( 2.1) |
|
3 |
20 ( 0.4) |
|
3A |
53 ( 1.0) |
|
3B |
26 ( 0.5) |
|
4 |
27 ( 0.5) |
|
4A |
21 ( 0.4) |
|
4A1 |
1 ( 0.0) |
|
4B |
31 ( 0.6) |
|
N_A |
2 ( 0.0) |
|
99 |
3353 ( 61.4) |
|
NA |
786 ( 14.4) |
| DX_RX_STARTED_DAYS (mean (sd)) |
|
48.97 (78.84) |
| DX_SURG_STARTED_DAYS (mean (sd)) |
|
19.34 (42.97) |
| DX_DEFSURG_STARTED_DAYS (mean (sd)) |
|
25.21 (55.38) |
| MARGINS (%) |
No Residual |
231 ( 4.2) |
|
Residual, NOS |
93 ( 1.7) |
|
Microscopic Resid |
13 ( 0.2) |
|
Macroscopic Resid |
38 ( 0.7) |
|
Not evaluable |
229 ( 4.2) |
|
No surg |
4490 ( 82.2) |
|
Unknown |
371 ( 6.8) |
| MARGINS_YN (%) |
No |
231 ( 4.2) |
|
Yes |
144 ( 2.6) |
|
No surg/Unk/NA |
5090 ( 93.1) |
| SURG_DISCHARGE_DAYS (mean (sd)) |
|
1.60 (13.24) |
| READM_HOSP_30_DAYS_F (%) |
No_Surg_or_No_Readmit |
5332 ( 97.6) |
|
Unplan_Readmit_Same |
14 ( 0.3) |
|
Plan_Readmit_Same |
26 ( 0.5) |
|
PlanUnplan_Same |
1 ( 0.0) |
|
9 |
92 ( 1.7) |
| RX_SUMM_RADIATION_F (%) |
None |
4655 ( 85.2) |
|
Beam Radiation |
751 ( 13.7) |
|
Radioactive Implants |
3 ( 0.1) |
|
Radioisotopes |
1 ( 0.0) |
|
Radiation, NOS |
28 ( 0.5) |
|
Unknown |
27 ( 0.5) |
| PUF_30_DAY_MORT_CD_F (%) |
Alive_30 |
725 ( 13.3) |
|
Dead_30 |
1 ( 0.0) |
|
Unknown |
9 ( 0.2) |
|
NA |
4730 ( 86.6) |
| PUF_90_DAY_MORT_CD_F (%) |
Alive_90 |
698 ( 12.8) |
|
Dead_90 |
8 ( 0.1) |
|
Unknown |
29 ( 0.5) |
|
NA |
4730 ( 86.6) |
| DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) |
|
51.00 (39.26) |
| LYMPH_VASCULAR_INVASION_F (%) |
N_A |
3247 ( 59.4) |
|
NA |
2218 ( 40.6) |
| RX_HOSP_SURG_APPR_2010_F (%) |
No_Surg |
2837 ( 51.9) |
|
Endo_Lap |
14 ( 0.3) |
|
Open_Unknown |
394 ( 7.2) |
|
Unknown |
2 ( 0.0) |
|
NA |
2218 ( 40.6) |
| SURG_RAD_SEQ (%) |
Surg Alone |
834 ( 15.3) |
|
Surg then Rad |
118 ( 2.2) |
|
Rad Alone |
656 ( 12.0) |
|
No Treatment |
3798 ( 69.5) |
|
Other |
52 ( 1.0) |
|
Rad before and after Surg |
3 ( 0.1) |
|
Rad then Surg |
4 ( 0.1) |
| SURG_RAD_SEQ_C (%) |
Surg, No rad, No Chemo |
647 ( 11.8) |
|
Surg then Rad, No Chemo |
89 ( 1.6) |
|
Surg then Rad, Yes Chemo |
27 ( 0.5) |
|
Surg, No rad, Yes Chemo |
159 ( 2.9) |
|
No Surg, No Rad, Yes Chemo |
1091 ( 20.0) |
|
No Surg, No Rad, No Chemo |
2598 ( 47.5) |
|
Other |
212 ( 3.9) |
|
Rad, No Surg, Yes Chemo |
197 ( 3.6) |
|
Rad, No Surg, No Chemo |
438 ( 8.0) |
|
Rad then Surg, No Chemo |
4 ( 0.1) |
|
Rad before and after Surg, No Chemo |
3 ( 0.1) |
| SURGERY_YN (%) |
No |
4465 ( 81.7) |
|
Ukn |
36 ( 0.7) |
|
Yes |
964 ( 17.6) |
| RADIATION_YN (%) |
No |
4653 ( 85.1) |
|
Yes |
783 ( 14.3) |
|
NA |
29 ( 0.5) |
| CHEMO_YN (%) |
No |
3798 ( 69.5) |
|
Yes |
1480 ( 27.1) |
|
Ukn |
187 ( 3.4) |
| IMMUNO_YN (%) |
No |
5119 ( 93.7) |
|
Yes |
311 ( 5.7) |
|
Ukn |
35 ( 0.6) |
| Tx_YN (%) |
FALSE |
2468 ( 45.2) |
|
TRUE |
2810 ( 51.4) |
|
NA |
187 ( 3.4) |
| mets_at_dx (%) |
Bone |
4 ( 0.1) |
|
Liver |
3 ( 0.1) |
|
Lung |
6 ( 0.1) |
|
None/Other/Unk/NA |
5452 ( 99.8) |
| MEDICAID_EXPN_CODE (%) |
Non-Expansion State |
1551 ( 28.4) |
|
Jan 2014 Expansion States |
1462 ( 26.8) |
|
Early Expansion States (2010-13) |
736 ( 13.5) |
|
Late Expansion States (> Jan 2014) |
747 ( 13.7) |
|
Suppressed for Ages 0 - 39 |
969 ( 17.7) |
| EXPN_GROUP (%) |
Exclude |
969 ( 17.7) |
|
Post-Expansion |
811 ( 14.8) |
|
Pre-Expansion |
3685 ( 67.4) |
| YEAR_OF_DIAGNOSIS (%) |
2004 |
296 ( 5.4) |
|
2005 |
341 ( 6.2) |
|
2006 |
339 ( 6.2) |
|
2007 |
354 ( 6.5) |
|
2008 |
409 ( 7.5) |
|
2009 |
479 ( 8.8) |
|
2010 |
463 ( 8.5) |
|
2011 |
465 ( 8.5) |
|
2012 |
539 ( 9.9) |
|
2013 |
554 ( 10.1) |
|
2014 |
599 ( 11.0) |
|
2015 |
627 ( 11.5) |
Kaplan Meier Analysis
All
uni_var(test_var = "All", data_imp = data)
_________________________________________________
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
n events median 0.95LCL 0.95UCL
5465 1147 158 155 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4490 246 0.952 0.00302 0.946 0.957
24 3770 228 0.900 0.00436 0.892 0.909
36 3056 193 0.851 0.00538 0.841 0.862
48 2441 147 0.807 0.00623 0.795 0.819
60 1905 101 0.770 0.00694 0.757 0.784
120 403 203 0.629 0.01136 0.608 0.652
## Univariable Cox Proportional Hazard Model for: All
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: All



Facility Type
uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
969 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program 111 46 93 59.6 116
FACILITY_TYPE_F=Comprehensive Comm Ca Program 537 180 116 90.5 NA
FACILITY_TYPE_F=Academic/Research Program 3589 799 148 140.7 NA
FACILITY_TYPE_F=Integrated Network Ca Program 259 83 127 92.8 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
969 observations deleted due to missingness
FACILITY_TYPE_F=Community Cancer Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 89 15 0.860 0.0336 0.796 0.928
24 76 6 0.799 0.0394 0.725 0.880
36 55 6 0.729 0.0451 0.646 0.823
48 44 4 0.671 0.0501 0.580 0.777
60 35 5 0.589 0.0558 0.489 0.709
120 5 10 0.246 0.0815 0.128 0.471
FACILITY_TYPE_F=Comprehensive Comm Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 434 44 0.913 0.0125 0.889 0.938
24 348 39 0.827 0.0174 0.794 0.862
36 273 33 0.745 0.0207 0.705 0.787
48 212 19 0.690 0.0228 0.646 0.736
60 169 15 0.638 0.0247 0.591 0.688
120 43 28 0.466 0.0348 0.403 0.540
FACILITY_TYPE_F=Academic/Research Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2946 156 0.953 0.00367 0.946 0.960
24 2469 162 0.898 0.00547 0.887 0.908
36 2006 139 0.843 0.00680 0.830 0.857
48 1597 103 0.796 0.00785 0.781 0.812
60 1250 72 0.757 0.00873 0.740 0.774
120 246 144 0.608 0.01420 0.581 0.637
FACILITY_TYPE_F=Integrated Network Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 205 24 0.901 0.0191 0.865 0.940
24 173 16 0.828 0.0248 0.781 0.878
36 146 7 0.793 0.0271 0.742 0.848
48 112 14 0.713 0.0318 0.653 0.778
60 83 5 0.680 0.0336 0.617 0.749
120 20 15 0.514 0.0475 0.428 0.616
## Univariable Cox Proportional Hazard Model for: FACILITY_TYPE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
n= 4496, number of events= 1108
(969 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.2452 0.7826 0.1653 -1.483 0.1379
FACILITY_TYPE_FAcademic/Research Program -0.6897 0.5017 0.1516 -4.548 5.41e-06 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.3140 0.7305 0.1839 -1.708 0.0876 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program 0.7826 1.278 0.5660 1.0819
FACILITY_TYPE_FAcademic/Research Program 0.5017 1.993 0.3727 0.6754
FACILITY_TYPE_FIntegrated Network Ca Program 0.7305 1.369 0.5095 1.0474
Concordance= 0.549 (se = 0.007 )
Rsquare= 0.01 (max possible= 0.978 )
Likelihood ratio test= 46.3 on 3 df, p=4.897e-10
Wald test = 50.69 on 3 df, p=5.693e-11
Score (logrank) test = 51.85 on 3 df, p=3.217e-11
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_TYPE_F



Facility Location
uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
969 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England 256 60 NA 97.2 NA
FACILITY_LOCATION_F=Middle Atlantic 1104 219 135.7 117.8 NA
FACILITY_LOCATION_F=South Atlantic 968 255 144.3 132.3 NA
FACILITY_LOCATION_F=East North Central 711 194 158.3 130.6 NA
FACILITY_LOCATION_F=East South Central 237 73 126.0 108.9 NA
FACILITY_LOCATION_F=West North Central 284 87 95.3 82.8 NA
FACILITY_LOCATION_F=West South Central 252 62 155.1 114.7 NA
FACILITY_LOCATION_F=Mountain 226 41 NA 134.3 NA
FACILITY_LOCATION_F=Pacific 458 117 NA 141.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
969 observations deleted due to missingness
FACILITY_LOCATION_F=New England
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 184 15 0.933 0.0167 0.901 0.966
24 139 16 0.844 0.0261 0.794 0.897
36 128 6 0.807 0.0290 0.752 0.866
48 97 11 0.733 0.0339 0.669 0.802
60 70 6 0.679 0.0379 0.608 0.757
120 3 6 0.577 0.0533 0.481 0.691
FACILITY_LOCATION_F=Middle Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 926 39 0.962 0.00594 0.951 0.974
24 791 42 0.916 0.00894 0.899 0.934
36 611 42 0.863 0.01163 0.840 0.886
48 438 30 0.814 0.01402 0.787 0.842
60 316 23 0.765 0.01650 0.733 0.798
120 43 38 0.561 0.03589 0.494 0.636
FACILITY_LOCATION_F=South Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 810 50 0.945 0.00754 0.931 0.960
24 690 48 0.886 0.01086 0.865 0.908
36 567 47 0.822 0.01350 0.796 0.849
48 480 22 0.788 0.01478 0.760 0.818
60 396 24 0.746 0.01629 0.715 0.779
120 100 55 0.593 0.02363 0.548 0.641
FACILITY_LOCATION_F=East North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 595 50 0.926 0.0101 0.906 0.946
24 519 22 0.890 0.0123 0.866 0.914
36 415 36 0.825 0.0155 0.795 0.855
48 345 28 0.766 0.0179 0.732 0.802
60 282 13 0.736 0.0191 0.699 0.774
120 56 41 0.565 0.0300 0.509 0.627
FACILITY_LOCATION_F=East South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 193 16 0.928 0.0173 0.895 0.963
24 162 20 0.829 0.0261 0.779 0.882
36 135 10 0.776 0.0293 0.721 0.836
48 100 9 0.721 0.0325 0.660 0.788
60 76 5 0.682 0.0351 0.617 0.754
120 23 11 0.528 0.0514 0.436 0.639
FACILITY_LOCATION_F=West North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 209 26 0.897 0.0191 0.861 0.936
24 168 16 0.825 0.0246 0.778 0.875
36 140 10 0.774 0.0280 0.721 0.831
48 104 14 0.690 0.0328 0.629 0.757
60 73 8 0.630 0.0363 0.562 0.705
120 9 12 0.397 0.0650 0.288 0.547
FACILITY_LOCATION_F=West South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 214 10 0.958 0.0131 0.932 0.984
24 165 20 0.863 0.0233 0.819 0.910
36 134 7 0.823 0.0267 0.773 0.877
48 110 9 0.764 0.0312 0.705 0.828
60 77 8 0.703 0.0354 0.637 0.776
120 12 7 0.588 0.0587 0.484 0.715
FACILITY_LOCATION_F=Mountain
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 172 7 0.967 0.0123 0.943 0.991
24 133 10 0.904 0.0225 0.861 0.949
36 106 9 0.838 0.0297 0.782 0.898
48 89 5 0.796 0.0337 0.732 0.865
60 79 1 0.786 0.0346 0.721 0.857
120 20 6 0.692 0.0499 0.601 0.797
FACILITY_LOCATION_F=Pacific
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 371 26 0.940 0.0114 0.918 0.963
24 299 29 0.862 0.0174 0.828 0.897
36 244 18 0.806 0.0206 0.767 0.848
48 202 12 0.764 0.0229 0.721 0.810
60 168 9 0.729 0.0247 0.682 0.779
120 48 21 0.588 0.0349 0.524 0.661
## Univariable Cox Proportional Hazard Model for: FACILITY_LOCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
n= 4496, number of events= 1108
(969 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic -0.30921 0.73403 0.14576 -2.121 0.0339 *
FACILITY_LOCATION_FSouth Atlantic -0.19547 0.82245 0.14378 -1.359 0.1740
FACILITY_LOCATION_FEast North Central -0.13210 0.87626 0.14787 -0.893 0.3717
FACILITY_LOCATION_FEast South Central 0.03836 1.03911 0.17444 0.220 0.8259
FACILITY_LOCATION_FWest North Central 0.24135 1.27297 0.16786 1.438 0.1505
FACILITY_LOCATION_FWest South Central -0.10399 0.90123 0.18113 -0.574 0.5659
FACILITY_LOCATION_FMountain -0.41248 0.66200 0.20283 -2.034 0.0420 *
FACILITY_LOCATION_FPacific -0.18747 0.82906 0.15922 -1.177 0.2390
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic 0.7340 1.3623 0.5516 0.9768
FACILITY_LOCATION_FSouth Atlantic 0.8224 1.2159 0.6205 1.0902
FACILITY_LOCATION_FEast North Central 0.8763 1.1412 0.6558 1.1708
FACILITY_LOCATION_FEast South Central 1.0391 0.9624 0.7382 1.4627
FACILITY_LOCATION_FWest North Central 1.2730 0.7856 0.9161 1.7689
FACILITY_LOCATION_FWest South Central 0.9012 1.1096 0.6319 1.2853
FACILITY_LOCATION_FMountain 0.6620 1.5106 0.4448 0.9852
FACILITY_LOCATION_FPacific 0.8291 1.2062 0.6068 1.1327
Concordance= 0.547 (se = 0.009 )
Rsquare= 0.006 (max possible= 0.978 )
Likelihood ratio test= 25.18 on 8 df, p=0.00145
Wald test = 26.5 on 8 df, p=0.0008614
Score (logrank) test = 26.87 on 8 df, p=0.0007444
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_LOCATION_F



Facility Geography
uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
969 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 1360 279 136 118 NA
FACILITY_GEOGRAPHY=South 1220 317 155 132 NA
FACILITY_GEOGRAPHY=Midwest 1232 354 132 116 NA
FACILITY_GEOGRAPHY=West 684 158 NA 145 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
969 observations deleted due to missingness
FACILITY_GEOGRAPHY=Northeast
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1110 54 0.957 0.00573 0.946 0.968
24 930 58 0.904 0.00867 0.887 0.921
36 739 48 0.853 0.01084 0.832 0.875
48 535 41 0.799 0.01304 0.774 0.825
60 386 29 0.749 0.01520 0.720 0.780
120 46 44 0.557 0.03258 0.497 0.625
FACILITY_GEOGRAPHY=South
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1024 60 0.948 0.00657 0.935 0.961
24 855 68 0.882 0.00988 0.862 0.901
36 701 54 0.822 0.01207 0.799 0.846
48 590 31 0.783 0.01338 0.758 0.810
60 473 32 0.738 0.01483 0.709 0.767
120 112 62 0.591 0.02165 0.550 0.635
FACILITY_GEOGRAPHY=Midwest
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 997 92 0.920 0.00802 0.904 0.936
24 849 58 0.864 0.01035 0.844 0.885
36 690 56 0.804 0.01237 0.780 0.829
48 549 51 0.741 0.01421 0.714 0.769
60 431 26 0.703 0.01531 0.674 0.734
120 88 64 0.527 0.02422 0.481 0.576
FACILITY_GEOGRAPHY=West
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 543 33 0.949 0.00872 0.932 0.966
24 432 39 0.875 0.01391 0.848 0.903
36 350 27 0.817 0.01693 0.784 0.850
48 291 17 0.774 0.01891 0.738 0.812
60 247 10 0.747 0.02018 0.708 0.787
120 68 27 0.617 0.02916 0.562 0.677
## Univariable Cox Proportional Hazard Model for: FACILITY_GEOGRAPHY
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
n= 4496, number of events= 1108
(969 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_GEOGRAPHYSouth 0.0728737 1.0755947 0.0823713 0.885 0.37632
FACILITY_GEOGRAPHYMidwest 0.2340738 1.2637378 0.0801929 2.919 0.00351 **
FACILITY_GEOGRAPHYWest 0.0004172 1.0004173 0.0999940 0.004 0.99667
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth 1.076 0.9297 0.9152 1.264
FACILITY_GEOGRAPHYMidwest 1.264 0.7913 1.0799 1.479
FACILITY_GEOGRAPHYWest 1.000 0.9996 0.8224 1.217
Concordance= 0.532 (se = 0.009 )
Rsquare= 0.002 (max possible= 0.978 )
Likelihood ratio test= 10.73 on 3 df, p=0.01329
Wald test = 10.93 on 3 df, p=0.01213
Score (logrank) test = 10.97 on 3 df, p=0.01191
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_GEOGRAPHY



Age Group
uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
1 observation deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_F=(0,54] 2367 201 NA NA NA
AGE_F=(54,64] 1294 236 158.3 158.3 NA
AGE_F=(64,74] 1075 304 115.2 104.6 131
AGE_F=(74,100] 728 406 51.2 46.3 58
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
1 observation deleted due to missingness
AGE_F=(0,54]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1989 35 0.984 0.00270 0.979 0.989
24 1715 45 0.960 0.00435 0.952 0.969
36 1432 25 0.945 0.00524 0.935 0.956
48 1159 33 0.922 0.00652 0.909 0.935
60 929 21 0.903 0.00752 0.889 0.918
120 227 35 0.846 0.01237 0.822 0.870
AGE_F=(54,64]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1070 41 0.966 0.00527 0.955 0.976
24 896 42 0.925 0.00795 0.910 0.941
36 742 47 0.874 0.01042 0.854 0.895
48 590 45 0.816 0.01284 0.791 0.842
60 463 18 0.789 0.01393 0.762 0.817
120 89 38 0.682 0.02087 0.643 0.724
AGE_F=(64,74]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 859 65 0.935 0.00785 0.919 0.950
24 712 59 0.867 0.01120 0.845 0.889
36 556 49 0.802 0.01368 0.776 0.829
48 453 32 0.753 0.01535 0.724 0.784
60 341 27 0.703 0.01711 0.670 0.737
120 60 63 0.473 0.02918 0.419 0.534
AGE_F=(74,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 571 105 0.850 0.0135 0.824 0.877
24 446 82 0.723 0.0173 0.690 0.758
36 325 72 0.600 0.0196 0.563 0.639
48 238 37 0.525 0.0206 0.486 0.567
60 171 35 0.442 0.0216 0.402 0.487
120 27 67 0.185 0.0247 0.143 0.241
## Univariable Cox Proportional Hazard Model for: AGE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n= 5464, number of events= 1147
(1 observation deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_F(54,64] 0.84094 2.31855 0.09602 8.758 <2e-16 ***
AGE_F(64,74] 1.35635 3.88201 0.09101 14.903 <2e-16 ***
AGE_F(74,100] 2.18581 8.89782 0.08660 25.239 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64] 2.319 0.4313 1.921 2.799
AGE_F(64,74] 3.882 0.2576 3.248 4.640
AGE_F(74,100] 8.898 0.1124 7.509 10.544
Concordance= 0.708 (se = 0.009 )
Rsquare= 0.124 (max possible= 0.964 )
Likelihood ratio test= 722.3 on 3 df, p=0
Wald test = 702.1 on 3 df, p=0
Score (logrank) test = 900.6 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_F



Age Group
uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
1 observation deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_40=(0,40] 1033 44 NA NA NA
AGE_40=(40,100] 4431 1103 145 135 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
1 observation deleted due to missingness
AGE_40=(0,40]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 870 7 0.993 0.00278 0.987 0.998
24 749 8 0.983 0.00442 0.974 0.992
36 618 8 0.971 0.00596 0.960 0.983
48 511 7 0.959 0.00740 0.945 0.974
60 395 6 0.946 0.00906 0.929 0.964
120 96 6 0.923 0.01329 0.897 0.949
AGE_40=(40,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3619 239 0.942 0.00364 0.935 0.949
24 3020 220 0.882 0.00521 0.871 0.892
36 2437 185 0.824 0.00637 0.812 0.837
48 1929 140 0.773 0.00731 0.758 0.787
60 1509 95 0.731 0.00806 0.716 0.747
120 307 197 0.569 0.01295 0.544 0.595
## Univariable Cox Proportional Hazard Model for: AGE_40
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n= 5464, number of events= 1147
(1 observation deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_40(40,100] 1.8534 6.3816 0.1537 12.05 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100] 6.382 0.1567 4.721 8.626
Concordance= 0.581 (se = 0.006 )
Rsquare= 0.048 (max possible= 0.964 )
Likelihood ratio test= 267.3 on 1 df, p=0
Wald test = 145.3 on 1 df, p=0
Score (logrank) test = 192 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_40



Gender
uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n events median 0.95LCL 0.95UCL
SEX_F=Male 3028 705 158 136 NA
SEX_F=Female 2437 442 NA 155 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
SEX_F=Male
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2469 151 0.946 0.00427 0.938 0.955
24 2051 147 0.887 0.00622 0.875 0.899
36 1669 117 0.833 0.00758 0.818 0.848
48 1319 84 0.787 0.00865 0.770 0.804
60 1023 62 0.746 0.00963 0.728 0.766
120 210 125 0.591 0.01556 0.562 0.623
SEX_F=Female
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2021 95 0.958 0.00420 0.950 0.967
24 1719 81 0.918 0.00597 0.906 0.929
36 1387 76 0.874 0.00751 0.859 0.889
48 1122 63 0.831 0.00889 0.814 0.849
60 882 39 0.799 0.00990 0.780 0.819
120 193 78 0.676 0.01650 0.645 0.709
## Univariable Cox Proportional Hazard Model for: SEX_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
SEX_FFemale -0.3049 0.7372 0.0607 -5.023 5.09e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale 0.7372 1.356 0.6545 0.8303
Concordance= 0.536 (se = 0.008 )
Rsquare= 0.005 (max possible= 0.964 )
Likelihood ratio test= 25.73 on 1 df, p=3.923e-07
Wald test = 25.23 on 1 df, p=5.086e-07
Score (logrank) test = 25.43 on 1 df, p=4.596e-07
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SEX_F



RACE_F
uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n events median 0.95LCL 0.95UCL
RACE_F=White 3906 872 155 145 NA
RACE_F=Black 1152 235 NA 148 NA
RACE_F=Other/Unk 224 23 NA NA NA
RACE_F=Asian 183 17 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
RACE_F=White
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3219 185 0.949 0.00363 0.942 0.956
24 2695 175 0.895 0.00527 0.885 0.905
36 2190 153 0.841 0.00653 0.828 0.854
48 1763 106 0.797 0.00745 0.782 0.812
60 1378 77 0.759 0.00827 0.743 0.775
120 280 151 0.615 0.01346 0.589 0.641
RACE_F=Black
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 939 53 0.950 0.00670 0.937 0.963
24 785 47 0.900 0.00958 0.881 0.918
36 641 33 0.859 0.01148 0.837 0.882
48 508 32 0.812 0.01356 0.785 0.839
60 391 22 0.772 0.01528 0.743 0.803
120 93 44 0.632 0.02432 0.586 0.682
RACE_F=Other/Unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 189 3 0.985 0.00877 0.968 1.000
24 161 4 0.963 0.01388 0.936 0.990
36 123 3 0.942 0.01782 0.908 0.978
48 82 8 0.870 0.02959 0.814 0.930
60 64 0 0.870 0.02959 0.814 0.930
120 12 5 0.743 0.06693 0.622 0.886
RACE_F=Asian
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 143 5 0.970 0.0132 0.945 0.996
24 129 2 0.957 0.0162 0.925 0.989
36 102 4 0.924 0.0223 0.881 0.969
48 88 1 0.915 0.0239 0.869 0.963
60 72 2 0.893 0.0279 0.840 0.949
120 18 3 0.825 0.0500 0.733 0.929
## Univariable Cox Proportional Hazard Model for: RACE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
RACE_FBlack -0.09311 0.91109 0.07351 -1.267 0.205272
RACE_FOther/Unk -0.70971 0.49179 0.21128 -3.359 0.000782 ***
RACE_FAsian -0.92152 0.39792 0.24491 -3.763 0.000168 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack 0.9111 1.098 0.7888 1.0523
RACE_FOther/Unk 0.4918 2.033 0.3250 0.7441
RACE_FAsian 0.3979 2.513 0.2462 0.6431
Concordance= 0.527 (se = 0.007 )
Rsquare= 0.006 (max possible= 0.964 )
Likelihood ratio test= 32.71 on 3 df, p=3.709e-07
Wald test = 25.52 on 3 df, p=1.199e-05
Score (logrank) test = 26.9 on 3 df, p=6.185e-06
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RACE_F



Hispanic
uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n events median 0.95LCL 0.95UCL
HISPANIC=No 4855 1040 158 148 NA
HISPANIC=Yes 358 54 NA NA NA
HISPANIC=Unknown 252 53 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
HISPANIC=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3971 225 0.950 0.00325 0.944 0.956
24 3332 205 0.898 0.00467 0.889 0.907
36 2710 176 0.848 0.00577 0.836 0.859
48 2162 134 0.802 0.00667 0.789 0.815
60 1688 91 0.765 0.00741 0.751 0.780
120 355 181 0.624 0.01207 0.601 0.648
HISPANIC=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 299 12 0.964 0.0102 0.944 0.984
24 244 15 0.912 0.0162 0.881 0.945
36 187 6 0.887 0.0188 0.851 0.924
48 149 7 0.852 0.0222 0.809 0.897
60 103 7 0.804 0.0275 0.751 0.859
120 12 7 0.672 0.0603 0.563 0.801
HISPANIC=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 220 9 0.962 0.0124 0.938 0.987
24 194 8 0.926 0.0174 0.892 0.960
36 159 11 0.869 0.0232 0.825 0.916
48 130 6 0.834 0.0263 0.784 0.888
60 114 3 0.815 0.0281 0.761 0.871
120 36 15 0.663 0.0434 0.583 0.754
## Univariable Cox Proportional Hazard Model for: HISPANIC
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
HISPANICYes -0.2670 0.7657 0.1396 -1.912 0.0559 .
HISPANICUnknown -0.2018 0.8173 0.1410 -1.431 0.1524
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes 0.7657 1.306 0.5823 1.007
HISPANICUnknown 0.8173 1.224 0.6200 1.077
Concordance= 0.511 (se = 0.005 )
Rsquare= 0.001 (max possible= 0.964 )
Likelihood ratio test= 5.84 on 2 df, p=0.05405
Wald test = 5.46 on 2 df, p=0.06532
Score (logrank) test = 5.48 on 2 df, p=0.06443
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISPANIC



Insurance Status
uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n events median 0.95LCL 0.95UCL
INSURANCE_F=Private 3017 353 NA 158.3 NA
INSURANCE_F=None 211 34 NA NA NA
INSURANCE_F=Medicaid 336 57 NA NA NA
INSURANCE_F=Medicare 1677 651 82.8 75.0 92.8
INSURANCE_F=Other Government 83 17 117.2 95.3 NA
INSURANCE_F=Unknown 141 35 NA 126.5 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
INSURANCE_F=Private
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2539 45 0.984 0.00240 0.979 0.988
24 2176 71 0.955 0.00412 0.947 0.963
36 1813 61 0.926 0.00538 0.916 0.937
48 1474 65 0.890 0.00678 0.877 0.904
60 1172 37 0.866 0.00770 0.851 0.881
120 268 63 0.784 0.01257 0.760 0.809
INSURANCE_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 171 7 0.963 0.0136 0.937 0.990
24 151 6 0.929 0.0192 0.892 0.967
36 120 7 0.883 0.0249 0.835 0.933
48 100 8 0.819 0.0316 0.760 0.884
60 76 2 0.802 0.0333 0.739 0.870
120 17 4 0.743 0.0422 0.665 0.830
INSURANCE_F=Medicaid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 277 18 0.942 0.0132 0.917 0.969
24 218 17 0.880 0.0192 0.843 0.918
36 171 7 0.848 0.0220 0.806 0.892
48 126 7 0.810 0.0253 0.762 0.861
60 83 4 0.781 0.0282 0.728 0.838
120 9 4 0.699 0.0483 0.610 0.800
INSURANCE_F=Medicare
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1317 165 0.896 0.00771 0.881 0.911
24 1066 124 0.807 0.01029 0.787 0.827
36 820 108 0.719 0.01215 0.696 0.743
48 636 64 0.658 0.01329 0.633 0.685
60 487 54 0.598 0.01442 0.570 0.627
120 85 120 0.358 0.02101 0.319 0.402
INSURANCE_F=Other Government
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 70 3 0.960 0.0227 0.917 1.000
24 61 1 0.946 0.0262 0.896 0.999
36 46 4 0.875 0.0419 0.797 0.961
48 36 1 0.853 0.0464 0.767 0.949
60 31 0 0.853 0.0464 0.767 0.949
120 6 7 0.487 0.1212 0.299 0.793
INSURANCE_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 116 8 0.938 0.0211 0.898 0.981
24 98 9 0.863 0.0309 0.805 0.926
36 86 6 0.810 0.0359 0.742 0.883
48 69 2 0.789 0.0379 0.718 0.867
60 56 4 0.740 0.0427 0.661 0.829
120 18 5 0.650 0.0547 0.551 0.767
## Univariable Cox Proportional Hazard Model for: INSURANCE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
INSURANCE_FNone 0.34564 1.41290 0.17958 1.925 0.05426 .
INSURANCE_FMedicaid 0.58579 1.79641 0.14292 4.099 4.15e-05 ***
INSURANCE_FMedicare 1.39602 4.03911 0.06625 21.072 < 2e-16 ***
INSURANCE_FOther Government 0.64379 1.90368 0.24835 2.592 0.00953 **
INSURANCE_FUnknown 0.71246 2.03900 0.17726 4.019 5.84e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone 1.413 0.7078 0.9937 2.009
INSURANCE_FMedicaid 1.796 0.5567 1.3575 2.377
INSURANCE_FMedicare 4.039 0.2476 3.5473 4.599
INSURANCE_FOther Government 1.904 0.5253 1.1700 3.097
INSURANCE_FUnknown 2.039 0.4904 1.4406 2.886
Concordance= 0.668 (se = 0.008 )
Rsquare= 0.083 (max possible= 0.964 )
Likelihood ratio test= 476 on 5 df, p=0
Wald test = 460.9 on 5 df, p=0
Score (logrank) test = 531.6 on 5 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INSURANCE_F



Income
class(data$INCOME_F)
[1] "factor"
uni_var(test_var = "INCOME_F", data_imp = data)
_________________________________________________
## INCOME_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INCOME_F, data = data)
27 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
INCOME_F=Less than $38,000 960 238 144 135 NA
INCOME_F=$38,000 - $47,999 1133 298 155 132 NA
INCOME_F=$48,000 - $62,999 1359 287 158 147 NA
INCOME_F=$63,000 + 1986 318 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INCOME_F, data = data)
27 observations deleted due to missingness
INCOME_F=Less than $38,000
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 787 53 0.941 0.00793 0.925 0.956
24 657 48 0.880 0.01125 0.858 0.902
36 542 35 0.830 0.01343 0.804 0.857
48 425 36 0.769 0.01581 0.739 0.801
60 342 19 0.732 0.01720 0.699 0.767
120 75 41 0.583 0.02686 0.533 0.639
INCOME_F=$38,000 - $47,999
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 922 57 0.946 0.00697 0.932 0.960
24 775 58 0.884 0.01024 0.864 0.904
36 618 58 0.814 0.01292 0.789 0.839
48 498 38 0.761 0.01469 0.732 0.790
60 403 26 0.718 0.01606 0.687 0.750
120 88 55 0.566 0.02342 0.522 0.614
INCOME_F=$48,000 - $62,999
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1097 74 0.941 0.00662 0.928 0.954
24 921 58 0.889 0.00918 0.871 0.907
36 746 44 0.843 0.01098 0.822 0.865
48 604 32 0.804 0.01247 0.780 0.829
60 481 17 0.779 0.01347 0.753 0.806
120 98 52 0.620 0.02415 0.574 0.669
INCOME_F=$63,000 +
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1663 60 0.968 0.00413 0.959 0.976
24 1402 63 0.929 0.00623 0.916 0.941
36 1137 56 0.889 0.00794 0.873 0.904
48 902 41 0.854 0.00932 0.835 0.872
60 671 37 0.814 0.01093 0.793 0.836
120 140 54 0.703 0.01839 0.667 0.740
## Univariable Cox Proportional Hazard Model for: INCOME_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INCOME_F, data = data)
n= 5438, number of events= 1141
(27 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
INCOME_F$38,000 - $47,999 0.05749 1.05917 0.08694 0.661 0.5085
INCOME_F$48,000 - $62,999 -0.14840 0.86209 0.08768 -1.692 0.0906 .
INCOME_F$63,000 + -0.43423 0.64776 0.08572 -5.066 4.07e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INCOME_F$38,000 - $47,999 1.0592 0.9441 0.8932 1.2559
INCOME_F$48,000 - $62,999 0.8621 1.1600 0.7260 1.0237
INCOME_F$63,000 + 0.6478 1.5438 0.5476 0.7663
Concordance= 0.557 (se = 0.009 )
Rsquare= 0.008 (max possible= 0.964 )
Likelihood ratio test= 45.17 on 3 df, p=8.531e-10
Wald test = 43.8 on 3 df, p=1.664e-09
Score (logrank) test = 44.46 on 3 df, p=1.203e-09
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INCOME_F



Education
uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
26 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more 931 230 144 132 NA
EDUCATION_F=13 - 20.9% 1319 307 155 135 NA
EDUCATION_F=7 - 12.9% 1699 375 148 145 NA
EDUCATION_F=Less than 7% 1490 229 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
26 observations deleted due to missingness
EDUCATION_F=21% or more
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 757 49 0.943 0.00788 0.928 0.959
24 613 57 0.869 0.01196 0.846 0.892
36 501 32 0.820 0.01405 0.793 0.848
48 386 35 0.757 0.01656 0.725 0.790
60 302 15 0.724 0.01789 0.690 0.760
120 68 37 0.573 0.02802 0.521 0.631
EDUCATION_F=13 - 20.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1095 60 0.951 0.00618 0.939 0.963
24 942 60 0.897 0.00898 0.879 0.914
36 766 52 0.844 0.01102 0.823 0.866
48 606 42 0.794 0.01280 0.769 0.819
60 474 29 0.753 0.01423 0.726 0.781
120 101 58 0.584 0.02419 0.539 0.634
EDUCATION_F=7 - 12.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1397 87 0.945 0.00570 0.934 0.957
24 1162 70 0.895 0.00797 0.879 0.911
36 937 67 0.840 0.00993 0.821 0.860
48 750 40 0.801 0.01121 0.780 0.823
60 601 29 0.767 0.01238 0.743 0.792
120 121 69 0.623 0.01985 0.585 0.663
EDUCATION_F=Less than 7%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1221 48 0.965 0.00494 0.956 0.975
24 1039 40 0.932 0.00707 0.918 0.946
36 840 42 0.891 0.00916 0.873 0.909
48 688 30 0.856 0.01076 0.835 0.878
60 520 26 0.820 0.01242 0.796 0.845
120 111 38 0.722 0.01981 0.684 0.762
## Univariable Cox Proportional Hazard Model for: EDUCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
n= 5439, number of events= 1141
(26 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
EDUCATION_F13 - 20.9% -0.12274 0.88449 0.08722 -1.407 0.1593
EDUCATION_F7 - 12.9% -0.14596 0.86419 0.08376 -1.742 0.0814 .
EDUCATION_FLess than 7% -0.51247 0.59901 0.09336 -5.489 4.04e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9% 0.8845 1.131 0.7455 1.0494
EDUCATION_F7 - 12.9% 0.8642 1.157 0.7334 1.0184
EDUCATION_FLess than 7% 0.5990 1.669 0.4988 0.7193
Concordance= 0.546 (se = 0.009 )
Rsquare= 0.007 (max possible= 0.964 )
Likelihood ratio test= 36.35 on 3 df, p=6.305e-08
Wald test = 34.18 on 3 df, p=1.812e-07
Score (logrank) test = 34.69 on 3 df, p=1.418e-07
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: EDUCATION_F



Urban/Rural
uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
137 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
U_R_F=Metro 4722 936 158 158.3 NA
U_R_F=Urban 537 154 155 115.9 NA
U_R_F=Rural 69 20 NA 98.2 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
137 observations deleted due to missingness
U_R_F=Metro
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3901 190 0.957 0.00308 0.951 0.963
24 3274 186 0.908 0.00453 0.900 0.917
36 2651 155 0.862 0.00562 0.851 0.873
48 2116 126 0.818 0.00659 0.805 0.831
60 1636 87 0.780 0.00740 0.766 0.795
120 345 166 0.642 0.01237 0.619 0.667
U_R_F=Urban
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 427 39 0.922 0.0119 0.899 0.946
24 361 32 0.851 0.0164 0.819 0.884
36 293 28 0.781 0.0197 0.743 0.820
48 238 18 0.730 0.0218 0.689 0.774
60 199 9 0.701 0.0230 0.657 0.747
120 46 25 0.559 0.0328 0.498 0.627
U_R_F=Rural
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 59 7 0.895 0.0376 0.824 0.972
24 51 3 0.847 0.0446 0.764 0.939
36 46 4 0.780 0.0522 0.684 0.889
48 37 0 0.780 0.0522 0.684 0.889
60 31 1 0.756 0.0557 0.655 0.874
120 5 5 0.550 0.0957 0.391 0.773
## Univariable Cox Proportional Hazard Model for: U_R_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
n= 5328, number of events= 1110
(137 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
U_R_FUrban 0.3602 1.4336 0.0870 4.140 3.47e-05 ***
U_R_FRural 0.3055 1.3573 0.2260 1.352 0.177
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban 1.434 0.6975 1.2089 1.700
U_R_FRural 1.357 0.7368 0.8715 2.114
Concordance= 0.526 (se = 0.005 )
Rsquare= 0.003 (max possible= 0.963 )
Likelihood ratio test= 16.96 on 2 df, p=0.0002074
Wald test = 18.42 on 2 df, p=0.0001003
Score (logrank) test = 18.61 on 2 df, p=9.097e-05
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: U_R_F



Year
uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 296 97 NA 155.1 NA
YEAR_OF_DIAGNOSIS=2005 341 134 145 132.1 NA
YEAR_OF_DIAGNOSIS=2006 339 109 NA NA NA
YEAR_OF_DIAGNOSIS=2007 354 100 NA NA NA
YEAR_OF_DIAGNOSIS=2008 409 119 NA 115.5 NA
YEAR_OF_DIAGNOSIS=2009 479 106 NA 104.8 NA
YEAR_OF_DIAGNOSIS=2010 463 95 NA NA NA
YEAR_OF_DIAGNOSIS=2011 465 99 NA NA NA
YEAR_OF_DIAGNOSIS=2012 539 93 NA 69.6 NA
YEAR_OF_DIAGNOSIS=2013 554 91 NA NA NA
YEAR_OF_DIAGNOSIS=2014 599 63 NA NA NA
YEAR_OF_DIAGNOSIS=2015 627 41 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
YEAR_OF_DIAGNOSIS=2004
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 260 16 0.945 0.0135 0.918 0.971
24 243 6 0.922 0.0160 0.891 0.954
36 225 12 0.876 0.0200 0.838 0.916
48 212 10 0.837 0.0226 0.793 0.882
60 196 10 0.797 0.0248 0.749 0.847
120 116 31 0.647 0.0317 0.588 0.712
YEAR_OF_DIAGNOSIS=2005
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 299 18 0.945 0.0127 0.920 0.970
24 269 17 0.889 0.0177 0.855 0.925
36 248 20 0.823 0.0217 0.782 0.867
48 228 16 0.769 0.0241 0.724 0.818
60 208 15 0.718 0.0258 0.669 0.771
120 124 35 0.581 0.0297 0.526 0.642
YEAR_OF_DIAGNOSIS=2006
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 287 26 0.920 0.0150 0.891 0.950
24 255 16 0.868 0.0191 0.831 0.906
36 236 13 0.823 0.0217 0.781 0.867
48 225 7 0.798 0.0230 0.754 0.845
60 208 12 0.755 0.0249 0.708 0.805
120 113 32 0.624 0.0295 0.569 0.685
YEAR_OF_DIAGNOSIS=2007
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 310 23 0.933 0.0135 0.907 0.960
24 270 25 0.855 0.0194 0.818 0.894
36 257 5 0.839 0.0203 0.800 0.880
48 235 12 0.799 0.0224 0.757 0.844
60 214 9 0.768 0.0238 0.723 0.816
120 50 25 0.655 0.0297 0.599 0.716
YEAR_OF_DIAGNOSIS=2008
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 351 20 0.948 0.0113 0.926 0.971
24 316 21 0.890 0.0163 0.859 0.922
36 281 25 0.819 0.0203 0.780 0.859
48 250 15 0.774 0.0222 0.731 0.818
60 221 11 0.739 0.0236 0.694 0.786
YEAR_OF_DIAGNOSIS=2009
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 397 26 0.942 0.0110 0.921 0.964
24 366 22 0.889 0.0151 0.860 0.919
36 318 18 0.844 0.0178 0.810 0.879
48 296 10 0.817 0.0191 0.780 0.855
60 273 7 0.797 0.0201 0.759 0.837
YEAR_OF_DIAGNOSIS=2010
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 401 10 0.977 0.00725 0.963 0.991
24 354 22 0.921 0.01338 0.895 0.948
36 331 9 0.898 0.01520 0.868 0.928
48 299 24 0.832 0.01912 0.795 0.870
60 255 14 0.790 0.02115 0.750 0.833
YEAR_OF_DIAGNOSIS=2011
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 404 18 0.959 0.00941 0.941 0.978
24 361 18 0.915 0.01360 0.889 0.942
36 328 20 0.864 0.01701 0.831 0.898
48 288 19 0.812 0.01971 0.774 0.851
60 225 13 0.771 0.02169 0.730 0.815
YEAR_OF_DIAGNOSIS=2012
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 450 16 0.968 0.00788 0.953 0.984
24 396 23 0.916 0.01287 0.891 0.942
36 338 31 0.842 0.01741 0.809 0.877
48 282 13 0.808 0.01910 0.772 0.846
60 105 7 0.779 0.02153 0.738 0.823
YEAR_OF_DIAGNOSIS=2013
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 432 29 0.943 0.0102 0.923 0.964
24 362 23 0.890 0.0145 0.862 0.919
36 306 22 0.833 0.0179 0.799 0.869
48 126 14 0.787 0.0208 0.748 0.829
YEAR_OF_DIAGNOSIS=2014
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 461 22 0.959 0.00856 0.942 0.976
24 389 20 0.916 0.01255 0.891 0.940
36 188 14 0.877 0.01571 0.847 0.909
YEAR_OF_DIAGNOSIS=2015
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 438 22 0.959 0.00868 0.942 0.976
24 189 15 0.916 0.01385 0.889 0.944
## Univariable Cox Proportional Hazard Model for: YEAR_OF_DIAGNOSIS
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 0.27739 1.31968 0.13438 2.064 0.039 *
YEAR_OF_DIAGNOSIS2006 0.14336 1.15414 0.14152 1.013 0.311
YEAR_OF_DIAGNOSIS2007 0.05856 1.06031 0.14510 0.404 0.687
YEAR_OF_DIAGNOSIS2008 0.21702 1.24237 0.14010 1.549 0.121
YEAR_OF_DIAGNOSIS2009 -0.00370 0.99631 0.14416 -0.026 0.980
YEAR_OF_DIAGNOSIS2010 -0.02641 0.97393 0.14842 -0.178 0.859
YEAR_OF_DIAGNOSIS2011 0.09719 1.10207 0.14750 0.659 0.510
YEAR_OF_DIAGNOSIS2012 0.04982 1.05108 0.15027 0.332 0.740
YEAR_OF_DIAGNOSIS2013 0.20877 1.23217 0.15179 1.375 0.169
YEAR_OF_DIAGNOSIS2014 -0.03117 0.96931 0.16810 -0.185 0.853
YEAR_OF_DIAGNOSIS2015 -0.10718 0.89836 0.19337 -0.554 0.579
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005 1.3197 0.7578 1.0141 1.717
YEAR_OF_DIAGNOSIS2006 1.1541 0.8664 0.8746 1.523
YEAR_OF_DIAGNOSIS2007 1.0603 0.9431 0.7979 1.409
YEAR_OF_DIAGNOSIS2008 1.2424 0.8049 0.9441 1.635
YEAR_OF_DIAGNOSIS2009 0.9963 1.0037 0.7511 1.322
YEAR_OF_DIAGNOSIS2010 0.9739 1.0268 0.7281 1.303
YEAR_OF_DIAGNOSIS2011 1.1021 0.9074 0.8254 1.472
YEAR_OF_DIAGNOSIS2012 1.0511 0.9514 0.7829 1.411
YEAR_OF_DIAGNOSIS2013 1.2322 0.8116 0.9151 1.659
YEAR_OF_DIAGNOSIS2014 0.9693 1.0317 0.6972 1.348
YEAR_OF_DIAGNOSIS2015 0.8984 1.1131 0.6150 1.312
Concordance= 0.534 (se = 0.009 )
Rsquare= 0.002 (max possible= 0.964 )
Likelihood ratio test= 13.44 on 11 df, p=0.2653
Wald test = 13.58 on 11 df, p=0.2569
Score (logrank) test = 13.65 on 11 df, p=0.2532
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.



Primary Site
uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n events median 0.95LCL 0.95UCL
SITE_TEXT=C44.0 Skin of lip, NOS 13 1 NA NA NA
SITE_TEXT=C44.1 Eyelid 12 5 59.6 49.7 NA
SITE_TEXT=C44.2 External ear 6 2 39.0 39.0 NA
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 164 30 NA NA NA
SITE_TEXT=C44.4 Skin of scalp and neck 66 17 135.7 66.0 NA
SITE_TEXT=C44.5 Skin of trunk 864 128 NA NA NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder 296 56 NA 130.7 NA
SITE_TEXT=C44.7 Skin of lower limb and hip 557 78 NA NA NA
SITE_TEXT=C44.8 Overlapping lesion of skin 515 127 140.7 114.8 NA
SITE_TEXT=C44.9 Skin, NOS 2969 702 155.1 139.0 NA
SITE_TEXT=C51.9 Vulva, NOS 2 1 12.6 NA NA
SITE_TEXT=C60.9 Penis 1 0 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
SITE_TEXT=C44.0 Skin of lip, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 0 1.000 0.000 1.000 1
24 7 1 0.889 0.105 0.706 1
36 6 0 0.889 0.105 0.706 1
48 5 0 0.889 0.105 0.706 1
60 3 0 0.889 0.105 0.706 1
120 2 0 0.889 0.105 0.706 1
SITE_TEXT=C44.1 Eyelid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11 1 0.917 0.0798 0.773 1
24 7 2 0.733 0.1324 0.515 1
36 5 0 0.733 0.1324 0.515 1
48 5 0 0.733 0.1324 0.515 1
60 2 2 0.391 0.1953 0.147 1
120 1 0 0.391 0.1953 0.147 1
SITE_TEXT=C44.2 External ear
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 1 0.8 0.179 0.516 1
24 3 0 0.8 0.179 0.516 1
36 2 0 0.8 0.179 0.516 1
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 143 3 0.980 0.0113 0.958 1.000
24 123 5 0.944 0.0193 0.907 0.982
36 106 7 0.888 0.0273 0.836 0.943
48 86 5 0.842 0.0328 0.780 0.909
60 72 4 0.801 0.0371 0.732 0.877
120 20 6 0.702 0.0516 0.608 0.811
SITE_TEXT=C44.4 Skin of scalp and neck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 49 5 0.920 0.0344 0.855 0.990
24 41 3 0.860 0.0464 0.774 0.956
36 31 3 0.792 0.0569 0.688 0.912
48 23 1 0.759 0.0634 0.644 0.894
60 17 1 0.721 0.0707 0.595 0.874
120 5 3 0.578 0.0942 0.420 0.796
SITE_TEXT=C44.5 Skin of trunk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 714 25 0.969 0.00612 0.957 0.981
24 613 23 0.936 0.00899 0.918 0.954
36 522 20 0.903 0.01124 0.882 0.926
48 450 13 0.880 0.01274 0.855 0.905
60 353 18 0.842 0.01498 0.813 0.872
120 85 25 0.750 0.02305 0.706 0.796
SITE_TEXT=C44.6 Skin of upper limb and shoulder
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 232 13 0.950 0.0136 0.924 0.977
24 188 13 0.894 0.0198 0.856 0.934
36 157 8 0.854 0.0234 0.809 0.901
48 122 6 0.818 0.0267 0.767 0.872
60 97 2 0.803 0.0281 0.750 0.860
120 22 13 0.623 0.0524 0.528 0.735
SITE_TEXT=C44.7 Skin of lower limb and hip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 473 7 0.986 0.00517 0.976 0.996
24 409 17 0.949 0.01013 0.930 0.969
36 343 14 0.915 0.01332 0.889 0.941
48 282 11 0.883 0.01592 0.852 0.915
60 229 6 0.862 0.01768 0.828 0.898
120 46 21 0.684 0.04060 0.609 0.768
SITE_TEXT=C44.8 Overlapping lesion of skin
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 419 33 0.931 0.0117 0.908 0.954
24 360 23 0.877 0.0154 0.847 0.908
36 297 19 0.828 0.0182 0.793 0.865
48 238 15 0.783 0.0206 0.744 0.825
60 184 12 0.739 0.0231 0.695 0.786
120 32 22 0.566 0.0394 0.494 0.649
SITE_TEXT=C44.9 Skin, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2433 158 0.943 0.00439 0.935 0.952
24 2018 140 0.886 0.00626 0.874 0.898
36 1586 122 0.828 0.00775 0.813 0.843
48 1229 95 0.774 0.00903 0.756 0.791
60 948 56 0.735 0.00997 0.715 0.754
120 190 113 0.589 0.01581 0.559 0.621
SITE_TEXT=C51.9 Vulva, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
SITE_TEXT=C60.9 Penis
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
## Univariable Cox Proportional Hazard Model for: SITE_TEXT
Loglik converged before variable 11 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
SITE_TEXTC44.1 Eyelid 1.798e+00 6.038e+00 1.096e+00 1.641 0.1007
SITE_TEXTC44.2 External ear 2.047e+00 7.745e+00 1.225e+00 1.671 0.0947 .
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 6.801e-01 1.974e+00 1.017e+00 0.669 0.5035
SITE_TEXTC44.4 Skin of scalp and neck 1.305e+00 3.688e+00 1.029e+00 1.268 0.2047
SITE_TEXTC44.5 Skin of trunk 5.256e-01 1.691e+00 1.004e+00 0.523 0.6006
SITE_TEXTC44.6 Skin of upper limb and shoulder 9.191e-01 2.507e+00 1.009e+00 0.911 0.3623
SITE_TEXTC44.7 Skin of lower limb and hip 4.622e-01 1.588e+00 1.006e+00 0.459 0.6461
SITE_TEXTC44.8 Overlapping lesion of skin 1.122e+00 3.071e+00 1.004e+00 1.117 0.2638
SITE_TEXTC44.9 Skin, NOS 1.126e+00 3.082e+00 1.001e+00 1.125 0.2607
SITE_TEXTC51.9 Vulva, NOS 3.303e+00 2.719e+01 1.415e+00 2.334 0.0196 *
SITE_TEXTC60.9 Penis -1.056e+01 2.589e-05 6.327e+02 -0.017 0.9867
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC44.1 Eyelid 6.038e+00 1.656e-01 0.7053 51.70
SITE_TEXTC44.2 External ear 7.745e+00 1.291e-01 0.7019 85.47
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 1.974e+00 5.066e-01 0.2692 14.48
SITE_TEXTC44.4 Skin of scalp and neck 3.688e+00 2.712e-01 0.4907 27.72
SITE_TEXTC44.5 Skin of trunk 1.691e+00 5.912e-01 0.2364 12.10
SITE_TEXTC44.6 Skin of upper limb and shoulder 2.507e+00 3.989e-01 0.3470 18.11
SITE_TEXTC44.7 Skin of lower limb and hip 1.588e+00 6.299e-01 0.2208 11.41
SITE_TEXTC44.8 Overlapping lesion of skin 3.071e+00 3.257e-01 0.4291 21.97
SITE_TEXTC44.9 Skin, NOS 3.082e+00 3.244e-01 0.4335 21.91
SITE_TEXTC51.9 Vulva, NOS 2.719e+01 3.677e-02 1.6973 435.70
SITE_TEXTC60.9 Penis 2.589e-05 3.863e+04 0.0000 Inf
Concordance= 0.567 (se = 0.009 )
Rsquare= 0.016 (max possible= 0.964 )
Likelihood ratio test= 85.71 on 11 df, p=1.151e-13
Wald test = 80.72 on 11 df, p=1.072e-12
Score (logrank) test = 86.85 on 11 df, p=6.883e-14
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 12 rows containing missing values (geom_text).Removed 12 rows containing missing values (geom_text).Removed 12 rows containing missing values (geom_text).Removed 12 rows containing missing values (geom_text).Removed 12 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 12.



Histology
#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)
Behavior
uni_var(test_var = "BEHAVIOR", data_imp = data)
_________________________________________________
## BEHAVIOR
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ BEHAVIOR, data = data)
n events median 0.95LCL 0.95UCL
5465 1147 158 155 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ BEHAVIOR, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4490 246 0.952 0.00302 0.946 0.957
24 3770 228 0.900 0.00436 0.892 0.909
36 3056 193 0.851 0.00538 0.841 0.862
48 2441 147 0.807 0.00623 0.795 0.819
60 1905 101 0.770 0.00694 0.757 0.784
120 403 203 0.629 0.01136 0.608 0.652
## Univariable Cox Proportional Hazard Model for: BEHAVIOR
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: BEHAVIOR



Grade
#uni_var(test_var = "GRADE_F", data_imp = data)
Clinical T Stage
uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
148 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 10 2 40.0 30.4 NA
TNM_CLIN_T=c1 1654 123 NA NA NA
TNM_CLIN_T=c1A 246 15 NA NA NA
TNM_CLIN_T=c1B 118 12 NA NA NA
TNM_CLIN_T=c2 788 153 NA 109.7 NA
TNM_CLIN_T=c2A 82 7 NA NA NA
TNM_CLIN_T=c2B 111 19 NA NA NA
TNM_CLIN_T=c3 376 148 64.2 51.0 95.3
TNM_CLIN_T=c4 289 140 48.0 39.5 61.5
TNM_CLIN_T=cX 1643 511 158.3 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
148 observations deleted due to missingness
TNM_CLIN_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 0 1.0 0.000 1.000 1
24 5 0 1.0 0.000 1.000 1
36 1 1 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
TNM_CLIN_T=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1352 18 0.988 0.00284 0.982 0.993
24 1153 21 0.972 0.00447 0.963 0.981
36 913 22 0.952 0.00609 0.940 0.964
48 676 25 0.922 0.00832 0.906 0.938
60 472 11 0.905 0.00967 0.886 0.924
120 35 26 0.788 0.03077 0.730 0.851
TNM_CLIN_T=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 207 3 0.987 0.0073 0.973 1.000
24 162 3 0.972 0.0115 0.949 0.994
36 121 6 0.929 0.0203 0.890 0.970
48 87 2 0.910 0.0240 0.864 0.958
60 49 1 0.892 0.0294 0.836 0.952
TNM_CLIN_T=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 94 0 1.000 0.0000 1.000 1.000
24 69 8 0.907 0.0315 0.847 0.971
36 46 1 0.890 0.0351 0.824 0.961
48 36 0 0.890 0.0351 0.824 0.961
60 22 2 0.827 0.0547 0.726 0.941
TNM_CLIN_T=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 632 31 0.957 0.00757 0.942 0.972
24 527 26 0.915 0.01089 0.893 0.936
36 414 27 0.864 0.01399 0.837 0.892
48 293 26 0.803 0.01739 0.770 0.838
60 207 19 0.743 0.02091 0.703 0.785
120 13 24 0.518 0.05418 0.422 0.636
TNM_CLIN_T=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 65 1 0.988 0.0124 0.963 1.000
24 54 2 0.953 0.0266 0.903 1.000
36 29 3 0.886 0.0456 0.801 0.980
48 18 0 0.886 0.0456 0.801 0.980
60 12 1 0.818 0.0778 0.678 0.985
TNM_CLIN_T=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 85 2 0.979 0.0144 0.952 1.000
24 62 5 0.917 0.0301 0.860 0.978
36 39 7 0.797 0.0500 0.705 0.901
48 26 4 0.701 0.0632 0.587 0.836
60 18 0 0.701 0.0632 0.587 0.836
TNM_CLIN_T=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 302 42 0.883 0.0170 0.850 0.917
24 220 44 0.746 0.0238 0.701 0.794
36 153 26 0.650 0.0273 0.599 0.706
48 108 18 0.567 0.0300 0.511 0.629
60 66 9 0.510 0.0325 0.450 0.578
120 3 9 0.373 0.0495 0.287 0.484
TNM_CLIN_T=c4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 211 47 0.829 0.0228 0.785 0.875
24 165 27 0.718 0.0281 0.665 0.775
36 115 29 0.584 0.0320 0.525 0.651
48 82 15 0.503 0.0338 0.440 0.573
60 52 10 0.430 0.0360 0.365 0.506
120 4 12 0.262 0.0519 0.178 0.387
TNM_CLIN_T=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1416 97 0.938 0.00606 0.927 0.950
24 1266 84 0.881 0.00831 0.865 0.898
36 1164 71 0.831 0.00973 0.812 0.850
48 1076 54 0.792 0.01064 0.771 0.813
60 984 46 0.757 0.01132 0.736 0.780
120 348 130 0.627 0.01437 0.600 0.656
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_T
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
n= 5317, number of events= 1130
(148 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Tc1 -1.7443 0.1748 0.7132 -2.446 0.0145 *
TNM_CLIN_Tc1A -1.8104 0.1636 0.7530 -2.404 0.0162 *
TNM_CLIN_Tc1B -1.2191 0.2955 0.7640 -1.596 0.1105
TNM_CLIN_Tc2 -0.7425 0.4759 0.7120 -1.043 0.2970
TNM_CLIN_Tc2A -1.3471 0.2600 0.8019 -1.680 0.0930 .
TNM_CLIN_Tc2B -0.6317 0.5317 0.7436 -0.850 0.3956
TNM_CLIN_Tc3 0.1083 1.1143 0.7121 0.152 0.8792
TNM_CLIN_Tc4 0.3553 1.4266 0.7124 0.499 0.6180
TNM_CLIN_TcX -0.7941 0.4520 0.7094 -1.119 0.2630
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc1 0.1748 5.7219 0.04319 0.7072
TNM_CLIN_Tc1A 0.1636 6.1128 0.03739 0.7157
TNM_CLIN_Tc1B 0.2955 3.3841 0.06611 1.3208
TNM_CLIN_Tc2 0.4759 2.1012 0.11788 1.9214
TNM_CLIN_Tc2A 0.2600 3.8461 0.05400 1.2519
TNM_CLIN_Tc2B 0.5317 1.8808 0.12381 2.2834
TNM_CLIN_Tc3 1.1143 0.8974 0.27599 4.4993
TNM_CLIN_Tc4 1.4266 0.7010 0.35312 5.7634
TNM_CLIN_TcX 0.4520 2.2124 0.11253 1.8154
Concordance= 0.665 (se = 0.009 )
Rsquare= 0.073 (max possible= 0.965 )
Likelihood ratio test= 405.8 on 9 df, p=0
Wald test = 410.2 on 9 df, p=0
Score (logrank) test = 492 on 9 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_T



Clinical N Stage
uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
132 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 9 2 40.0 30.36 NA
TNM_CLIN_N=c0 3294 450 NA NA NA
TNM_CLIN_N=c1 151 71 53.8 42.97 83.3
TNM_CLIN_N=c1A 8 3 NA 28.32 NA
TNM_CLIN_N=c1B 5 2 30.5 30.49 NA
TNM_CLIN_N=c2 23 15 36.1 24.97 NA
TNM_CLIN_N=c2A 1 0 NA NA NA
TNM_CLIN_N=c2B 4 3 10.0 5.95 NA
TNM_CLIN_N=c3 45 20 40.0 36.50 NA
TNM_CLIN_N=cX 1793 565 158.3 147.48 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
132 observations deleted due to missingness
TNM_CLIN_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 0 1.0 0.000 1.000 1
24 5 0 1.0 0.000 1.000 1
36 1 1 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
TNM_CLIN_N=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2690 84 0.972 0.00302 0.966 0.978
24 2217 102 0.933 0.00480 0.923 0.942
36 1694 91 0.890 0.00631 0.878 0.903
48 1241 67 0.851 0.00768 0.836 0.866
60 849 43 0.816 0.00904 0.798 0.834
120 53 63 0.661 0.02553 0.612 0.713
TNM_CLIN_N=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 109 25 0.826 0.0318 0.766 0.891
24 84 14 0.717 0.0387 0.645 0.797
36 63 11 0.620 0.0431 0.541 0.711
48 40 8 0.528 0.0475 0.443 0.630
60 24 7 0.421 0.0526 0.329 0.538
120 2 6 0.256 0.0635 0.158 0.417
TNM_CLIN_N=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 1 0.857 0.132 0.633 1
24 6 0 0.857 0.132 0.633 1
36 3 2 0.571 0.187 0.301 1
48 1 0 0.571 0.187 0.301 1
TNM_CLIN_N=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 1 0.8 0.179 0.516 1
24 2 0 0.8 0.179 0.516 1
TNM_CLIN_N=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 4 0.818 0.0822 0.672 0.996
24 14 2 0.722 0.0967 0.555 0.939
36 9 3 0.548 0.1146 0.364 0.826
48 5 3 0.366 0.1152 0.197 0.678
60 2 1 0.274 0.1172 0.119 0.634
TNM_CLIN_N=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_CLIN_N=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 2 0.50 0.250 0.1877 1
24 1 1 0.25 0.217 0.0458 1
TNM_CLIN_N=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 8 0.812 0.0600 0.703 0.939
24 20 5 0.672 0.0761 0.538 0.839
36 17 1 0.638 0.0793 0.500 0.814
48 10 6 0.401 0.0917 0.256 0.628
60 8 0 0.401 0.0917 0.256 0.628
120 1 0 0.401 0.0917 0.256 0.628
TNM_CLIN_N=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1518 117 0.932 0.00611 0.920 0.944
24 1341 97 0.870 0.00831 0.854 0.887
36 1214 81 0.817 0.00969 0.798 0.836
48 1106 61 0.775 0.01058 0.754 0.796
60 999 48 0.740 0.01121 0.719 0.763
120 347 132 0.612 0.01413 0.585 0.640
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_N
Loglik converged before variable 6 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
n= 5333, number of events= 1131
(132 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Nc0 -1.092e+00 3.355e-01 7.090e-01 -1.540 0.1235
TNM_CLIN_Nc1 3.178e-01 1.374e+00 7.172e-01 0.443 0.6577
TNM_CLIN_Nc1A 1.351e-01 1.145e+00 9.130e-01 0.148 0.8824
TNM_CLIN_Nc1B 9.244e-01 2.520e+00 1.000e+00 0.924 0.3553
TNM_CLIN_Nc2 7.323e-01 2.080e+00 7.529e-01 0.973 0.3307
TNM_CLIN_Nc2A -1.015e+01 3.909e-05 5.965e+02 -0.017 0.9864
TNM_CLIN_Nc2B 1.804e+00 6.074e+00 9.132e-01 1.976 0.0482 *
TNM_CLIN_Nc3 3.473e-01 1.415e+00 7.419e-01 0.468 0.6397
TNM_CLIN_NcX -7.165e-01 4.885e-01 7.092e-01 -1.010 0.3123
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0 3.355e-01 2.980e+00 0.08361 1.347
TNM_CLIN_Nc1 1.374e+00 7.278e-01 0.33690 5.604
TNM_CLIN_Nc1A 1.145e+00 8.737e-01 0.19122 6.851
TNM_CLIN_Nc1B 2.520e+00 3.968e-01 0.35498 17.895
TNM_CLIN_Nc2 2.080e+00 4.808e-01 0.47550 9.097
TNM_CLIN_Nc2A 3.909e-05 2.558e+04 0.00000 Inf
TNM_CLIN_Nc2B 6.074e+00 1.646e-01 1.01429 36.376
TNM_CLIN_Nc3 1.415e+00 7.066e-01 0.33065 6.058
TNM_CLIN_NcX 4.885e-01 2.047e+00 0.12167 1.961
Concordance= 0.593 (se = 0.008 )
Rsquare= 0.031 (max possible= 0.965 )
Likelihood ratio test= 165.6 on 9 df, p=0
Wald test = 219.3 on 9 df, p=0
Score (logrank) test = 265.8 on 9 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 10 rows containing missing values (geom_text).Removed 10 rows containing missing values (geom_text).Removed 10 rows containing missing values (geom_text).Removed 10 rows containing missing values (geom_text).Removed 10 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_N



Clinical M Stage
uni_var(test_var = "TNM_CLIN_M", data_imp = data)
_________________________________________________
## TNM_CLIN_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_M, data = data)
309 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_M=N_A 9 2 40.0 30.36 NA
TNM_CLIN_M=c0 5102 1067 158.3 155.07 NA
TNM_CLIN_M=c1 45 31 19.1 8.34 37.9
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_M, data = data)
309 observations deleted due to missingness
TNM_CLIN_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 0 1.0 0.000 1.000 1
24 5 0 1.0 0.000 1.000 1
36 1 1 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
TNM_CLIN_M=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4228 217 0.954 0.00303 0.948 0.960
24 3563 209 0.905 0.00442 0.896 0.913
36 2910 179 0.856 0.00548 0.845 0.867
48 2347 137 0.812 0.00634 0.800 0.825
60 1851 95 0.777 0.00705 0.763 0.790
120 403 201 0.635 0.01150 0.613 0.658
TNM_CLIN_M=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 24 17 0.603 0.0750 0.4724 0.769
24 16 5 0.467 0.0790 0.3356 0.651
36 9 5 0.313 0.0778 0.1925 0.510
48 5 1 0.274 0.0773 0.1577 0.476
60 3 2 0.164 0.0759 0.0666 0.406
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_M
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_M, data = data)
n= 5156, number of events= 1100
(309 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Mc0 -0.8753 0.4167 0.7083 -1.236 0.217
TNM_CLIN_Mc1 1.1820 3.2608 0.7297 1.620 0.105
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Mc0 0.4167 2.3996 0.1040 1.67
TNM_CLIN_Mc1 3.2608 0.3067 0.7803 13.63
Concordance= 0.517 (se = 0.001 )
Rsquare= 0.014 (max possible= 0.965 )
Likelihood ratio test= 73.68 on 2 df, p=1.11e-16
Wald test = 127.7 on 2 df, p=0
Score (logrank) test = 179 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_M



Clinical Stage Group
uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
3 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1 304 53 158.3 158.3 NA
TNM_CLIN_STAGE_GROUP=1A 2216 195 NA NA NA
TNM_CLIN_STAGE_GROUP=1B 1151 203 145.1 138.3 NA
TNM_CLIN_STAGE_GROUP=2 32 12 115.2 92.8 NA
TNM_CLIN_STAGE_GROUP=2A 97 32 NA 55.5 NA
TNM_CLIN_STAGE_GROUP=2B 413 168 65.7 55.9 96.7
TNM_CLIN_STAGE_GROUP=3 55 27 65.5 48.0 NA
TNM_CLIN_STAGE_GROUP=3A 178 80 63.9 42.7 92.3
TNM_CLIN_STAGE_GROUP=3B 71 38 38.9 29.7 NA
TNM_CLIN_STAGE_GROUP=4 57 40 37.0 18.3 56.5
TNM_CLIN_STAGE_GROUP=4A 62 40 40.1 24.6 83.3
TNM_CLIN_STAGE_GROUP=4A1 29 12 45.4 32.4 NA
TNM_CLIN_STAGE_GROUP=4A2 19 7 40.4 27.3 NA
TNM_CLIN_STAGE_GROUP=4B 50 37 14.4 6.9 25.0
TNM_CLIN_STAGE_GROUP=N_A 2 0 NA NA NA
TNM_CLIN_STAGE_GROUP=99 726 203 155.1 144.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
3 observations deleted due to missingness
TNM_CLIN_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 277 4 0.986 0.00689 0.973 1.000
24 250 7 0.960 0.01172 0.938 0.984
36 223 7 0.932 0.01545 0.902 0.963
48 202 6 0.906 0.01831 0.871 0.943
60 164 14 0.841 0.02393 0.795 0.889
120 52 13 0.734 0.03566 0.667 0.807
TNM_CLIN_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1850 20 0.990 0.00220 0.986 0.994
24 1577 37 0.969 0.00404 0.961 0.977
36 1289 36 0.945 0.00559 0.934 0.956
48 1024 27 0.923 0.00689 0.910 0.937
60 789 15 0.908 0.00778 0.893 0.924
120 148 53 0.794 0.01801 0.759 0.830
TNM_CLIN_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 946 28 0.973 0.00498 0.964 0.983
24 807 35 0.935 0.00798 0.919 0.951
36 644 35 0.891 0.01053 0.870 0.912
48 494 34 0.839 0.01313 0.814 0.865
60 389 22 0.798 0.01515 0.769 0.828
120 66 42 0.637 0.02763 0.585 0.694
TNM_CLIN_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 2 0.935 0.0443 0.852 1.000
24 21 2 0.867 0.0619 0.754 0.998
36 18 3 0.743 0.0849 0.594 0.930
48 17 0 0.743 0.0849 0.594 0.930
60 17 0 0.743 0.0849 0.594 0.930
120 2 4 0.405 0.1475 0.198 0.827
TNM_CLIN_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 78 10 0.892 0.0323 0.831 0.958
24 69 3 0.857 0.0369 0.788 0.932
36 50 8 0.747 0.0485 0.658 0.849
48 33 6 0.641 0.0580 0.537 0.766
60 24 2 0.599 0.0615 0.489 0.732
120 4 3 0.517 0.0690 0.398 0.672
TNM_CLIN_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 338 42 0.893 0.0156 0.863 0.924
24 250 49 0.756 0.0224 0.713 0.801
36 180 30 0.658 0.0257 0.609 0.710
48 129 20 0.578 0.0281 0.526 0.636
60 89 9 0.531 0.0300 0.475 0.593
120 6 18 0.302 0.0569 0.208 0.436
TNM_CLIN_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46 4 0.924 0.0363 0.856 0.998
24 40 4 0.841 0.0517 0.746 0.949
36 34 4 0.755 0.0617 0.644 0.887
48 26 5 0.639 0.0708 0.515 0.794
60 18 3 0.565 0.0745 0.436 0.731
120 3 6 0.245 0.1034 0.107 0.560
TNM_CLIN_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 133 21 0.871 0.0264 0.821 0.924
24 107 17 0.756 0.0346 0.691 0.827
36 76 21 0.602 0.0408 0.527 0.687
48 65 4 0.570 0.0417 0.493 0.657
60 45 5 0.522 0.0434 0.443 0.614
120 6 11 0.350 0.0542 0.258 0.474
TNM_CLIN_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 51 15 0.783 0.0496 0.692 0.887
24 40 10 0.628 0.0594 0.521 0.755
36 30 5 0.546 0.0619 0.437 0.682
48 23 4 0.473 0.0634 0.364 0.615
60 13 4 0.376 0.0669 0.265 0.533
120 3 0 0.376 0.0669 0.265 0.533
TNM_CLIN_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 38 16 0.709 0.0614 0.598 0.840
24 31 5 0.614 0.0663 0.497 0.759
36 25 4 0.532 0.0690 0.412 0.686
48 18 6 0.404 0.0694 0.289 0.566
60 15 3 0.337 0.0678 0.227 0.500
120 4 5 0.204 0.0621 0.112 0.370
TNM_CLIN_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 47 11 0.820 0.0491 0.729 0.922
24 33 11 0.623 0.0640 0.509 0.762
36 26 5 0.524 0.0674 0.407 0.674
48 22 4 0.443 0.0680 0.328 0.599
60 21 1 0.423 0.0678 0.309 0.579
120 5 7 0.241 0.0665 0.140 0.414
TNM_CLIN_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 2 0.930 0.0479 0.840 1.000
24 18 2 0.841 0.0737 0.709 0.999
36 11 3 0.672 0.1061 0.493 0.916
48 4 3 0.398 0.1392 0.201 0.790
60 2 1 0.299 0.1354 0.123 0.726
TNM_CLIN_STAGE_GROUP=4A2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 15 2 0.895 0.0704 0.767 1.000
24 9 2 0.748 0.1129 0.556 1.000
36 6 1 0.665 0.1273 0.457 0.967
48 3 2 0.399 0.1644 0.178 0.895
60 2 0 0.399 0.1644 0.178 0.895
TNM_CLIN_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 24 0.506 0.0719 0.383 0.669
24 13 7 0.333 0.0713 0.219 0.507
36 8 4 0.228 0.0655 0.130 0.400
48 3 1 0.195 0.0637 0.103 0.370
60 3 0 0.195 0.0637 0.103 0.370
TNM_CLIN_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
TNM_CLIN_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 593 45 0.934 0.00957 0.915 0.953
24 501 37 0.872 0.01326 0.846 0.898
36 433 27 0.823 0.01554 0.793 0.854
48 375 25 0.773 0.01750 0.739 0.808
60 311 22 0.724 0.01925 0.688 0.763
120 104 39 0.594 0.02556 0.546 0.646
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_STAGE_GROUP
Loglik converged before variable 14 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n= 5462, number of events= 1147
(3 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_STAGE_GROUP1A -3.605e-01 6.974e-01 1.552e-01 -2.323 0.02018 *
TNM_CLIN_STAGE_GROUP1B 3.753e-01 1.455e+00 1.546e-01 2.428 0.01519 *
TNM_CLIN_STAGE_GROUP2 9.677e-01 2.632e+00 3.197e-01 3.027 0.00247 **
TNM_CLIN_STAGE_GROUP2A 1.087e+00 2.964e+00 2.242e-01 4.847 1.26e-06 ***
TNM_CLIN_STAGE_GROUP2B 1.430e+00 4.178e+00 1.584e-01 9.029 < 2e-16 ***
TNM_CLIN_STAGE_GROUP3 1.394e+00 4.031e+00 2.367e-01 5.889 3.89e-09 ***
TNM_CLIN_STAGE_GROUP3A 1.505e+00 4.505e+00 1.776e-01 8.473 < 2e-16 ***
TNM_CLIN_STAGE_GROUP3B 1.716e+00 5.563e+00 2.130e-01 8.058 7.77e-16 ***
TNM_CLIN_STAGE_GROUP4 1.970e+00 7.173e+00 2.097e-01 9.394 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A 1.773e+00 5.886e+00 2.097e-01 8.455 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A1 1.676e+00 5.343e+00 3.207e-01 5.225 1.74e-07 ***
TNM_CLIN_STAGE_GROUP4A2 1.680e+00 5.366e+00 4.030e-01 4.169 3.06e-05 ***
TNM_CLIN_STAGE_GROUP4B 2.765e+00 1.589e+01 2.155e-01 12.833 < 2e-16 ***
TNM_CLIN_STAGE_GROUPN_A -1.038e+01 3.105e-05 5.711e+02 -0.018 0.98550
TNM_CLIN_STAGE_GROUP99 6.581e-01 1.931e+00 1.543e-01 4.266 1.99e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1A 6.974e-01 1.434e+00 0.5145 0.9452
TNM_CLIN_STAGE_GROUP1B 1.455e+00 6.871e-01 1.0750 1.9706
TNM_CLIN_STAGE_GROUP2 2.632e+00 3.799e-01 1.4064 4.9255
TNM_CLIN_STAGE_GROUP2A 2.964e+00 3.373e-01 1.9102 4.6001
TNM_CLIN_STAGE_GROUP2B 4.178e+00 2.393e-01 3.0634 5.6993
TNM_CLIN_STAGE_GROUP3 4.031e+00 2.481e-01 2.5346 6.4110
TNM_CLIN_STAGE_GROUP3A 4.505e+00 2.220e-01 3.1803 6.3810
TNM_CLIN_STAGE_GROUP3B 5.563e+00 1.798e-01 3.6645 8.4441
TNM_CLIN_STAGE_GROUP4 7.173e+00 1.394e-01 4.7552 10.8197
TNM_CLIN_STAGE_GROUP4A 5.886e+00 1.699e-01 3.9026 8.8771
TNM_CLIN_STAGE_GROUP4A1 5.343e+00 1.872e-01 2.8494 10.0181
TNM_CLIN_STAGE_GROUP4A2 5.366e+00 1.864e-01 2.4356 11.8227
TNM_CLIN_STAGE_GROUP4B 1.589e+01 6.295e-02 10.4136 24.2359
TNM_CLIN_STAGE_GROUPN_A 3.105e-05 3.221e+04 0.0000 Inf
TNM_CLIN_STAGE_GROUP99 1.931e+00 5.178e-01 1.4273 2.6131
Concordance= 0.723 (se = 0.009 )
Rsquare= 0.116 (max possible= 0.964 )
Likelihood ratio test= 671.5 on 15 df, p=0
Wald test = 728.7 on 15 df, p=0
Score (logrank) test = 976 on 15 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 16 rows containing missing values (geom_text).Removed 16 rows containing missing values (geom_text).Removed 16 rows containing missing values (geom_text).Removed 16 rows containing missing values (geom_text).Removed 16 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 16.



Pathologic T Stage
uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
1770 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 12 2 49.7 30.4 NA
TNM_PATH_T=p1 780 62 NA NA NA
TNM_PATH_T=p1A 89 6 NA NA NA
TNM_PATH_T=p1B 41 4 NA NA NA
TNM_PATH_T=p2 339 64 NA 90.8 NA
TNM_PATH_T=p2A 19 2 NA NA NA
TNM_PATH_T=p2B 31 8 41.1 34.4 NA
TNM_PATH_T=p3 155 53 66.0 53.9 NA
TNM_PATH_T=p4 132 62 46.2 34.5 NA
TNM_PATH_T=pX 2097 631 158.3 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
1770 observations deleted due to missingness
TNM_PATH_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9 0 1.000 0.000 1.0000 1
24 7 0 1.000 0.000 1.0000 1
36 2 1 0.750 0.217 0.4259 1
48 2 0 0.750 0.217 0.4259 1
60 1 1 0.375 0.286 0.0839 1
TNM_PATH_T=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 625 13 0.981 0.00514 0.971 0.991
24 536 13 0.960 0.00773 0.945 0.975
36 419 9 0.942 0.00957 0.924 0.961
48 291 13 0.909 0.01302 0.884 0.935
60 186 7 0.883 0.01600 0.852 0.915
120 6 7 0.838 0.02359 0.793 0.886
TNM_PATH_T=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 77 1 0.988 0.0121 0.964 1.000
24 67 1 0.973 0.0186 0.938 1.000
36 54 3 0.924 0.0330 0.861 0.991
48 42 1 0.902 0.0386 0.830 0.981
60 23 0 0.902 0.0386 0.830 0.981
TNM_PATH_T=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 0 1.000 0.0000 1.000 1
24 26 2 0.935 0.0441 0.853 1
36 23 0 0.935 0.0441 0.853 1
48 15 0 0.935 0.0441 0.853 1
60 8 2 0.772 0.1135 0.579 1
TNM_PATH_T=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 276 13 0.958 0.0113 0.937 0.981
24 240 11 0.918 0.0161 0.887 0.950
36 194 12 0.868 0.0207 0.829 0.910
48 126 11 0.809 0.0259 0.760 0.862
60 81 8 0.746 0.0321 0.686 0.812
TNM_PATH_T=p2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 0 1.000 0.000 1.000 1
24 11 0 1.000 0.000 1.000 1
36 6 2 0.778 0.139 0.549 1
48 4 0 0.778 0.139 0.549 1
60 3 0 0.778 0.139 0.549 1
TNM_PATH_T=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 1 0.960 0.0392 0.886 1.000
24 12 2 0.851 0.0810 0.706 1.000
36 8 3 0.624 0.1274 0.418 0.931
48 6 2 0.468 0.1351 0.266 0.824
60 5 0 0.468 0.1351 0.266 0.824
TNM_PATH_T=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 126 13 0.910 0.0238 0.864 0.958
24 92 15 0.796 0.0345 0.731 0.867
36 71 8 0.722 0.0401 0.648 0.805
48 48 8 0.629 0.0465 0.544 0.727
60 28 5 0.548 0.0530 0.453 0.662
120 2 4 0.400 0.0821 0.268 0.598
TNM_PATH_T=p4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 99 21 0.833 0.0333 0.771 0.901
24 77 15 0.703 0.0419 0.625 0.790
36 53 12 0.584 0.0468 0.499 0.683
48 33 8 0.486 0.0502 0.397 0.595
60 18 3 0.431 0.0538 0.338 0.551
TNM_PATH_T=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1799 122 0.939 0.00535 0.929 0.950
24 1620 103 0.884 0.00730 0.870 0.898
36 1471 90 0.834 0.00858 0.817 0.851
48 1357 69 0.794 0.00941 0.776 0.813
60 1242 56 0.761 0.01002 0.741 0.781
120 395 162 0.627 0.01306 0.601 0.653
## Univariable Cox Proportional Hazard Model for: TNM_PATH_T
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
n= 3695, number of events= 894
(1770 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Tp1 -1.1973 0.3020 0.7186 -1.666 0.0957 .
TNM_PATH_Tp1A -1.4231 0.2410 0.8167 -1.743 0.0814 .
TNM_PATH_Tp1B -0.9633 0.3816 0.8662 -1.112 0.2661
TNM_PATH_Tp2 -0.3500 0.7047 0.7182 -0.487 0.6260
TNM_PATH_Tp2A -0.6182 0.5389 1.0000 -0.618 0.5364
TNM_PATH_Tp2B 0.3525 1.4226 0.7906 0.446 0.6558
TNM_PATH_Tp3 0.3377 1.4017 0.7205 0.469 0.6393
TNM_PATH_Tp4 0.7825 2.1869 0.7185 1.089 0.2761
TNM_PATH_TpX -0.3753 0.6871 0.7090 -0.529 0.5965
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp1 0.3020 3.3113 0.07385 1.235
TNM_PATH_Tp1A 0.2410 4.1499 0.04862 1.194
TNM_PATH_Tp1B 0.3816 2.6204 0.06988 2.084
TNM_PATH_Tp2 0.7047 1.4191 0.17243 2.880
TNM_PATH_Tp2A 0.5389 1.8556 0.07590 3.826
TNM_PATH_Tp2B 1.4226 0.7030 0.30205 6.700
TNM_PATH_Tp3 1.4017 0.7134 0.34151 5.753
TNM_PATH_Tp4 2.1869 0.4573 0.53485 8.942
TNM_PATH_TpX 0.6871 1.4555 0.17121 2.757
Concordance= 0.594 (se = 0.009 )
Rsquare= 0.04 (max possible= 0.975 )
Likelihood ratio test= 150.9 on 9 df, p=0
Wald test = 159.6 on 9 df, p=0
Score (logrank) test = 182 on 9 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_T



Pathologic N Stage
uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
1698 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 10 2 49.7 30.4 NA
TNM_PATH_N=p0 738 97 NA NA NA
TNM_PATH_N=p1 36 19 48.0 27.5 NA
TNM_PATH_N=p1A 3 1 NA 9.2 NA
TNM_PATH_N=p1B 2 0 NA NA NA
TNM_PATH_N=p2 12 6 55.0 34.8 NA
TNM_PATH_N=p2B 1 0 NA NA NA
TNM_PATH_N=p3 15 10 23.8 10.3 NA
TNM_PATH_N=pX 2950 771 158.3 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
1698 observations deleted due to missingness
TNM_PATH_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 0 1.000 0.000 1.0000 1
24 6 0 1.000 0.000 1.0000 1
36 2 1 0.667 0.272 0.2995 1
48 2 0 0.667 0.272 0.2995 1
60 1 1 0.333 0.272 0.0673 1
TNM_PATH_N=p0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 590 17 0.974 0.00614 0.962 0.987
24 509 19 0.942 0.00950 0.923 0.960
36 392 20 0.900 0.01291 0.875 0.925
48 288 13 0.865 0.01563 0.835 0.896
60 203 11 0.827 0.01865 0.791 0.864
120 8 17 0.709 0.03439 0.644 0.779
TNM_PATH_N=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 9 0.731 0.0770 0.595 0.899
24 20 1 0.698 0.0804 0.557 0.875
36 16 3 0.593 0.0882 0.443 0.794
48 10 1 0.554 0.0907 0.402 0.763
60 5 4 0.323 0.1037 0.172 0.606
TNM_PATH_N=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 1 0.667 0.272 0.3 1
24 2 0 0.667 0.272 0.3 1
36 1 0 0.667 0.272 0.3 1
48 1 0 0.667 0.272 0.3 1
TNM_PATH_N=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_PATH_N=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9 2 0.818 0.116 0.619 1
24 9 0 0.818 0.116 0.619 1
36 6 1 0.716 0.140 0.488 1
48 4 1 0.573 0.170 0.320 1
60 1 1 0.382 0.193 0.142 1
TNM_PATH_N=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
TNM_PATH_N=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 5 0.667 0.122 0.4661 0.953
24 6 3 0.457 0.131 0.2607 0.802
36 4 1 0.381 0.129 0.1957 0.742
48 2 1 0.254 0.135 0.0897 0.719
60 2 0 0.254 0.135 0.0897 0.719
TNM_PATH_N=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2496 151 0.946 0.00429 0.937 0.954
24 2183 142 0.890 0.00609 0.878 0.902
36 1926 115 0.842 0.00724 0.827 0.856
48 1649 99 0.796 0.00816 0.780 0.812
60 1406 66 0.763 0.00880 0.746 0.780
120 395 169 0.628 0.01240 0.604 0.653
## Univariable Cox Proportional Hazard Model for: TNM_PATH_N
Loglik converged before variable 4,6 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
n= 3767, number of events= 906
(1698 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Np0 -8.539e-01 4.258e-01 7.145e-01 -1.195 0.232
TNM_PATH_Np1 7.946e-01 2.214e+00 7.435e-01 1.069 0.285
TNM_PATH_Np1A 3.207e-01 1.378e+00 1.225e+00 0.262 0.793
TNM_PATH_Np1B -1.207e+01 5.713e-06 1.211e+03 -0.010 0.992
TNM_PATH_Np2 5.862e-01 1.797e+00 8.166e-01 0.718 0.473
TNM_PATH_Np2B -1.207e+01 5.722e-06 9.384e+02 -0.013 0.990
TNM_PATH_Np3 1.195e+00 3.305e+00 7.747e-01 1.543 0.123
TNM_PATH_NpX -5.184e-01 5.955e-01 7.085e-01 -0.732 0.464
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0 4.258e-01 2.349e+00 0.1049 1.727
TNM_PATH_Np1 2.214e+00 4.518e-01 0.5155 9.505
TNM_PATH_Np1A 1.378e+00 7.256e-01 0.1249 15.200
TNM_PATH_Np1B 5.713e-06 1.750e+05 0.0000 Inf
TNM_PATH_Np2 1.797e+00 5.564e-01 0.3626 8.907
TNM_PATH_Np2B 5.722e-06 1.748e+05 0.0000 Inf
TNM_PATH_Np3 3.305e+00 3.026e-01 0.7240 15.084
TNM_PATH_NpX 5.955e-01 1.679e+00 0.1485 2.388
Concordance= 0.543 (se = 0.007 )
Rsquare= 0.015 (max possible= 0.974 )
Likelihood ratio test= 58.68 on 8 df, p=8.449e-10
Wald test = 81.01 on 8 df, p=3.053e-14
Score (logrank) test = 96.67 on 8 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_N



Pathologic M Stage
uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3226 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 8 2 49.7 30.4 NA
TNM_PATH_M=p1 18 11 32.2 23.0 NA
TNM_PATH_M=pX 2213 661 158.3 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3226 observations deleted due to missingness
TNM_PATH_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 0 1.000 0.000 1.0000 1
24 5 0 1.000 0.000 1.0000 1
36 2 1 0.667 0.272 0.2995 1
48 2 0 0.667 0.272 0.2995 1
60 1 1 0.333 0.272 0.0673 1
TNM_PATH_M=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 5 0.699 0.113 0.5092 0.960
24 8 1 0.622 0.124 0.4198 0.920
36 4 4 0.311 0.126 0.1402 0.689
48 2 0 0.311 0.126 0.1402 0.689
60 1 1 0.155 0.127 0.0314 0.768
TNM_PATH_M=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1902 126 0.940 0.00515 0.930 0.951
24 1718 106 0.887 0.00702 0.873 0.900
36 1564 93 0.838 0.00826 0.822 0.854
48 1445 70 0.800 0.00906 0.782 0.818
60 1319 64 0.764 0.00970 0.745 0.783
120 403 173 0.627 0.01278 0.603 0.653
## Univariable Cox Proportional Hazard Model for: TNM_PATH_M
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
n= 2239, number of events= 674
(3226 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Mp1 1.0165 2.7636 0.7688 1.322 0.186
TNM_PATH_MpX -0.6131 0.5417 0.7089 -0.865 0.387
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp1 2.7636 0.3618 0.6125 12.470
TNM_PATH_MpX 0.5417 1.8461 0.1350 2.173
Concordance= 0.509 (se = 0.002 )
Rsquare= 0.008 (max possible= 0.987 )
Likelihood ratio test= 18.57 on 2 df, p=9.288e-05
Wald test = 29.15 on 2 df, p=4.671e-07
Score (logrank) test = 36.04 on 2 df, p=1.492e-08
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_M



Pathologic Stage Group
uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
786 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1 141 27 NA NA NA
TNM_PATH_STAGE_GROUP=1A 589 58 NA NA NA
TNM_PATH_STAGE_GROUP=1B 255 45 NA 109.7 NA
TNM_PATH_STAGE_GROUP=2 14 6 140.7 34.4 NA
TNM_PATH_STAGE_GROUP=2A 33 11 77.3 55.0 NA
TNM_PATH_STAGE_GROUP=2B 113 39 102.1 56.5 NA
TNM_PATH_STAGE_GROUP=3 20 11 50.8 46.0 NA
TNM_PATH_STAGE_GROUP=3A 53 25 72.9 34.5 NA
TNM_PATH_STAGE_GROUP=3B 26 12 55.9 42.8 NA
TNM_PATH_STAGE_GROUP=4 27 19 45.3 32.4 84
TNM_PATH_STAGE_GROUP=4A 21 15 43.9 12.6 NA
TNM_PATH_STAGE_GROUP=4A1 1 0 NA NA NA
TNM_PATH_STAGE_GROUP=4B 31 18 25.1 15.4 NA
TNM_PATH_STAGE_GROUP=N_A 2 0 NA NA NA
TNM_PATH_STAGE_GROUP=99 3353 742 158.3 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
786 observations deleted due to missingness
TNM_PATH_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 123 3 0.977 0.0130 0.952 1.000
24 108 6 0.927 0.0235 0.882 0.974
36 94 5 0.881 0.0299 0.825 0.942
48 86 1 0.872 0.0311 0.813 0.935
60 74 4 0.830 0.0359 0.762 0.903
120 17 8 0.657 0.0641 0.542 0.795
TNM_PATH_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 481 9 0.983 0.00572 0.972 0.994
24 429 7 0.968 0.00796 0.952 0.983
36 349 10 0.942 0.01108 0.921 0.964
48 274 9 0.915 0.01409 0.888 0.943
60 211 6 0.893 0.01627 0.862 0.926
120 48 17 0.766 0.03490 0.701 0.838
TNM_PATH_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 205 7 0.969 0.0114 0.947 0.992
24 183 6 0.940 0.0163 0.908 0.972
36 156 6 0.906 0.0207 0.867 0.948
48 120 6 0.868 0.0250 0.820 0.918
60 96 6 0.821 0.0302 0.764 0.882
120 10 14 0.563 0.0731 0.436 0.726
TNM_PATH_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11 1 0.917 0.0798 0.773 1
24 8 0 0.917 0.0798 0.773 1
36 6 2 0.687 0.1526 0.445 1
48 5 0 0.687 0.1526 0.445 1
60 5 0 0.687 0.1526 0.445 1
120 2 1 0.550 0.1733 0.297 1
TNM_PATH_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25 3 0.902 0.0541 0.802 1.000
24 23 1 0.864 0.0636 0.748 0.998
36 16 3 0.746 0.0837 0.599 0.930
48 12 1 0.693 0.0932 0.532 0.902
60 8 1 0.635 0.1017 0.464 0.869
120 2 2 0.445 0.1360 0.244 0.810
TNM_PATH_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 89 14 0.869 0.0327 0.807 0.935
24 69 8 0.785 0.0408 0.709 0.870
36 55 7 0.701 0.0473 0.614 0.800
48 41 2 0.670 0.0501 0.578 0.775
60 28 4 0.593 0.0573 0.491 0.716
120 3 4 0.405 0.0934 0.258 0.636
TNM_PATH_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 18 2 0.900 0.0671 0.7777 1.000
24 18 0 0.900 0.0671 0.7777 1.000
36 13 3 0.741 0.0999 0.5691 0.965
48 10 1 0.679 0.1090 0.4961 0.930
60 6 3 0.476 0.1246 0.2846 0.795
120 2 2 0.264 0.1369 0.0957 0.730
TNM_PATH_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 39 9 0.819 0.0547 0.718 0.934
24 34 2 0.775 0.0601 0.665 0.902
36 23 7 0.606 0.0735 0.478 0.769
48 19 1 0.578 0.0755 0.447 0.746
60 14 1 0.545 0.0778 0.412 0.721
120 3 4 0.352 0.0944 0.208 0.595
TNM_PATH_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 3 0.881 0.0643 0.764 1.000
24 20 2 0.801 0.0796 0.659 0.974
36 15 2 0.714 0.0917 0.556 0.919
48 12 2 0.616 0.1023 0.444 0.853
60 5 3 0.385 0.1233 0.205 0.721
TNM_PATH_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 21 6 0.778 0.0800 0.6358 0.952
24 19 1 0.739 0.0849 0.5898 0.926
36 13 4 0.573 0.0987 0.4088 0.803
48 9 3 0.441 0.1012 0.2810 0.691
60 8 1 0.392 0.1011 0.2362 0.650
120 1 4 0.168 0.0851 0.0622 0.454
TNM_PATH_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 15 6 0.714 0.0986 0.5450 0.936
24 12 3 0.571 0.1080 0.3945 0.828
36 10 1 0.519 0.1100 0.3431 0.787
48 9 1 0.468 0.1106 0.2941 0.743
60 8 1 0.416 0.1098 0.2476 0.698
120 1 3 0.190 0.1058 0.0638 0.566
TNM_PATH_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_PATH_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 7 0.762 0.0786 0.623 0.933
24 12 6 0.525 0.0973 0.365 0.755
36 9 3 0.394 0.0982 0.242 0.642
48 5 2 0.306 0.0939 0.168 0.559
60 5 0 0.306 0.0939 0.168 0.559
TNM_PATH_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
TNM_PATH_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2778 149 0.952 0.00380 0.945 0.960
24 2341 151 0.898 0.00561 0.887 0.909
36 1957 116 0.851 0.00680 0.838 0.865
48 1618 100 0.805 0.00785 0.790 0.820
60 1307 64 0.770 0.00863 0.753 0.787
120 314 136 0.643 0.01301 0.618 0.669
## Univariable Cox Proportional Hazard Model for: TNM_PATH_STAGE_GROUP
Loglik converged before variable 11,13 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
n= 4679, number of events= 1028
(786 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_STAGE_GROUP1A -4.525e-01 6.360e-01 2.331e-01 -1.941 0.052202 .
TNM_PATH_STAGE_GROUP1B 1.455e-01 1.157e+00 2.436e-01 0.598 0.550139
TNM_PATH_STAGE_GROUP2 1.061e+00 2.890e+00 4.515e-01 2.351 0.018744 *
TNM_PATH_STAGE_GROUP2A 9.575e-01 2.605e+00 3.579e-01 2.676 0.007462 **
TNM_PATH_STAGE_GROUP2B 9.831e-01 2.673e+00 2.506e-01 3.924 8.72e-05 ***
TNM_PATH_STAGE_GROUP3 1.208e+00 3.347e+00 3.578e-01 3.376 0.000737 ***
TNM_PATH_STAGE_GROUP3A 1.285e+00 3.615e+00 2.777e-01 4.628 3.70e-06 ***
TNM_PATH_STAGE_GROUP3B 1.230e+00 3.421e+00 3.473e-01 3.542 0.000398 ***
TNM_PATH_STAGE_GROUP4 1.689e+00 5.416e+00 2.997e-01 5.637 1.73e-08 ***
TNM_PATH_STAGE_GROUP4A 1.634e+00 5.126e+00 3.221e-01 5.073 3.91e-07 ***
TNM_PATH_STAGE_GROUP4A1 -1.123e+01 1.333e-05 1.446e+03 -0.008 0.993808
TNM_PATH_STAGE_GROUP4B 1.882e+00 6.569e+00 3.048e-01 6.177 6.55e-10 ***
TNM_PATH_STAGE_GROUPN_A -1.123e+01 1.331e-05 7.693e+02 -0.015 0.988356
TNM_PATH_STAGE_GROUP99 3.066e-01 1.359e+00 1.960e-01 1.565 0.117688
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1A 6.360e-01 1.572e+00 0.4028 1.004
TNM_PATH_STAGE_GROUP1B 1.157e+00 8.646e-01 0.7176 1.864
TNM_PATH_STAGE_GROUP2 2.890e+00 3.460e-01 1.1929 7.001
TNM_PATH_STAGE_GROUP2A 2.605e+00 3.838e-01 1.2919 5.254
TNM_PATH_STAGE_GROUP2B 2.673e+00 3.741e-01 1.6357 4.368
TNM_PATH_STAGE_GROUP3 3.347e+00 2.988e-01 1.6596 6.748
TNM_PATH_STAGE_GROUP3A 3.615e+00 2.766e-01 2.0977 6.230
TNM_PATH_STAGE_GROUP3B 3.421e+00 2.923e-01 1.7320 6.757
TNM_PATH_STAGE_GROUP4 5.416e+00 1.846e-01 3.0103 9.746
TNM_PATH_STAGE_GROUP4A 5.126e+00 1.951e-01 2.7261 9.637
TNM_PATH_STAGE_GROUP4A1 1.333e-05 7.499e+04 0.0000 Inf
TNM_PATH_STAGE_GROUP4B 6.569e+00 1.522e-01 3.6147 11.937
TNM_PATH_STAGE_GROUPN_A 1.331e-05 7.516e+04 0.0000 Inf
TNM_PATH_STAGE_GROUP99 1.359e+00 7.360e-01 0.9254 1.995
Concordance= 0.591 (se = 0.008 )
Rsquare= 0.036 (max possible= 0.967 )
Likelihood ratio test= 171 on 14 df, p=0
Wald test = 203.4 on 14 df, p=0
Score (logrank) test = 236.1 on 14 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 15.



Margins
uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n events median 0.95LCL 0.95UCL
MARGINS=No Residual 231 33 145 145.1 NA
MARGINS=Residual, NOS 93 19 NA 106.5 NA
MARGINS=Microscopic Resid 13 3 NA 20.5 NA
MARGINS=Macroscopic Resid 38 4 NA NA NA
MARGINS=Not evaluable 229 45 NA 132.3 NA
MARGINS=No surg 4490 973 158 155.1 NA
MARGINS=Unknown 371 70 148 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
MARGINS=No Residual
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 197 6 0.972 0.0113 0.950 0.994
24 172 8 0.931 0.0179 0.896 0.966
36 153 3 0.914 0.0200 0.876 0.954
48 126 4 0.887 0.0235 0.843 0.935
60 95 4 0.856 0.0275 0.804 0.911
120 19 7 0.745 0.0468 0.658 0.842
MARGINS=Residual, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 79 4 0.955 0.0222 0.912 0.999
24 65 2 0.928 0.0285 0.874 0.985
36 52 4 0.868 0.0395 0.794 0.949
48 45 2 0.833 0.0450 0.749 0.926
60 36 1 0.812 0.0483 0.723 0.913
120 6 6 0.524 0.1087 0.349 0.787
MARGINS=Microscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 1 0.917 0.0798 0.773 1
24 6 2 0.707 0.1458 0.472 1
36 5 0 0.707 0.1458 0.472 1
48 5 0 0.707 0.1458 0.472 1
60 4 0 0.707 0.1458 0.472 1
120 2 0 0.707 0.1458 0.472 1
MARGINS=Macroscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 1 0.971 0.0290 0.915 1
24 25 0 0.971 0.0290 0.915 1
36 17 2 0.874 0.0701 0.746 1
48 14 1 0.819 0.0844 0.669 1
60 12 0 0.819 0.0844 0.669 1
120 1 0 0.819 0.0844 0.669 1
MARGINS=Not evaluable
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 192 8 0.962 0.0132 0.937 0.988
24 156 12 0.899 0.0216 0.857 0.942
36 132 5 0.868 0.0248 0.821 0.918
48 112 6 0.827 0.0287 0.773 0.885
60 82 3 0.801 0.0315 0.742 0.865
120 16 9 0.690 0.0452 0.607 0.784
MARGINS=No surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3688 206 0.951 0.00335 0.944 0.957
24 3092 191 0.899 0.00484 0.889 0.908
36 2490 169 0.846 0.00602 0.834 0.858
48 1975 126 0.799 0.00699 0.786 0.813
60 1557 85 0.762 0.00776 0.747 0.777
120 333 172 0.617 0.01262 0.593 0.642
MARGINS=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 296 20 0.941 0.0128 0.917 0.967
24 254 13 0.897 0.0172 0.864 0.931
36 207 10 0.858 0.0203 0.819 0.899
48 164 8 0.823 0.0229 0.780 0.869
60 119 8 0.778 0.0267 0.728 0.832
120 26 9 0.681 0.0418 0.604 0.768
## Univariable Cox Proportional Hazard Model for: MARGINS
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
MARGINSResidual, NOS 0.4508 1.5696 0.2880 1.565 0.11750
MARGINSMicroscopic Resid 0.6877 1.9892 0.6031 1.140 0.25417
MARGINSMacroscopic Resid -0.0404 0.9604 0.5295 -0.076 0.93917
MARGINSNot evaluable 0.4047 1.4989 0.2292 1.766 0.07741 .
MARGINSNo surg 0.5222 1.6858 0.1770 2.950 0.00318 **
MARGINSUnknown 0.4112 1.5086 0.2112 1.947 0.05153 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS 1.5696 0.6371 0.8926 2.760
MARGINSMicroscopic Resid 1.9892 0.5027 0.6099 6.487
MARGINSMacroscopic Resid 0.9604 1.0412 0.3402 2.711
MARGINSNot evaluable 1.4989 0.6672 0.9565 2.349
MARGINSNo surg 1.6858 0.5932 1.1916 2.385
MARGINSUnknown 1.5086 0.6629 0.9973 2.282
Concordance= 0.517 (se = 0.006 )
Rsquare= 0.002 (max possible= 0.964 )
Likelihood ratio test= 12.66 on 6 df, p=0.04883
Wald test = 10.95 on 6 df, p=0.08985
Score (logrank) test = 11.17 on 6 df, p=0.08323
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: MARGINS



Margins Yes/No
#uni_var(test_var = "MARGINS_YN", data_imp = data)
30 Day Readmission
uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 5332 1107 158.3 155.1 NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 14 2 NA NA NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same 26 8 77.5 54.1 NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same 1 0 NA NA NA
READM_HOSP_30_DAYS_F=9 92 30 132.3 65.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4379 238 0.952 0.00304 0.946 0.958
24 3678 219 0.902 0.00439 0.893 0.910
36 2980 188 0.852 0.00543 0.842 0.863
48 2379 143 0.808 0.00630 0.796 0.820
60 1863 93 0.773 0.00699 0.759 0.787
120 391 198 0.632 0.01153 0.609 0.655
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 2 0.857 0.0935 0.692 1
24 8 0 0.857 0.0935 0.692 1
36 6 0 0.857 0.0935 0.692 1
48 4 0 0.857 0.0935 0.692 1
60 1 0 0.857 0.0935 0.692 1
READM_HOSP_30_DAYS_F=Plan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 2 0.918 0.0554 0.816 1.000
24 20 2 0.835 0.0755 0.699 0.997
36 16 1 0.793 0.0825 0.647 0.972
48 13 0 0.793 0.0825 0.647 0.972
60 7 2 0.641 0.1200 0.444 0.925
120 1 1 0.480 0.1653 0.245 0.943
READM_HOSP_30_DAYS_F=PlanUnplan_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
READM_HOSP_30_DAYS_F=9
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 76 4 0.952 0.0234 0.907 0.999
24 63 7 0.859 0.0396 0.785 0.940
36 53 4 0.800 0.0466 0.713 0.897
48 44 4 0.737 0.0524 0.641 0.847
60 34 6 0.635 0.0595 0.528 0.763
120 11 4 0.531 0.0722 0.406 0.693
## Univariable Cox Proportional Hazard Model for: READM_HOSP_30_DAYS_F
Loglik converged before variable 3 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
READM_HOSP_30_DAYS_FUnplan_Readmit_Same -5.558e-02 9.459e-01 7.079e-01 -0.079 0.9374
READM_HOSP_30_DAYS_FPlan_Readmit_Same 4.387e-01 1.551e+00 3.549e-01 1.236 0.2165
READM_HOSP_30_DAYS_FPlanUnplan_Same -1.099e+01 1.682e-05 4.935e+02 -0.022 0.9822
READM_HOSP_30_DAYS_F9 3.844e-01 1.469e+00 1.851e-01 2.077 0.0378 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 9.459e-01 1.057e+00 0.2362 3.788
READM_HOSP_30_DAYS_FPlan_Readmit_Same 1.551e+00 6.449e-01 0.7734 3.109
READM_HOSP_30_DAYS_FPlanUnplan_Same 1.682e-05 5.946e+04 0.0000 Inf
READM_HOSP_30_DAYS_F9 1.469e+00 6.809e-01 1.0218 2.111
Concordance= 0.505 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.964 )
Likelihood ratio test= 5.62 on 4 df, p=0.2296
Wald test = 5.78 on 4 df, p=0.216
Score (logrank) test = 6.11 on 4 df, p=0.1913
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: READM_HOSP_30_DAYS_F



Radiation Type
uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None 4655 849 NA 158.3 NA
RX_SUMM_RADIATION_F=Beam Radiation 751 279 96.7 83.8 124
RX_SUMM_RADIATION_F=Radioactive Implants 3 0 NA NA NA
RX_SUMM_RADIATION_F=Radioisotopes 1 1 90.8 NA NA
RX_SUMM_RADIATION_F=Radiation, NOS 28 9 113.5 77.2 NA
RX_SUMM_RADIATION_F=Unknown 27 9 126.8 57.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
RX_SUMM_RADIATION_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3794 188 0.956 0.00312 0.950 0.962
24 3214 158 0.914 0.00443 0.906 0.923
36 2617 140 0.871 0.00551 0.861 0.882
48 2102 110 0.832 0.00644 0.819 0.844
60 1633 83 0.796 0.00728 0.781 0.810
120 346 148 0.668 0.01228 0.644 0.692
RX_SUMM_RADIATION_F=Beam Radiation
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 645 55 0.925 0.00977 0.906 0.944
24 509 67 0.823 0.01460 0.795 0.852
36 397 52 0.734 0.01753 0.700 0.769
48 309 33 0.669 0.01929 0.632 0.708
60 249 15 0.633 0.02033 0.595 0.674
120 54 51 0.444 0.02803 0.392 0.502
RX_SUMM_RADIATION_F=Radioactive Implants
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Radioisotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Radiation, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25 2 0.927 0.0496 0.835 1.000
24 23 1 0.889 0.0607 0.777 1.000
36 21 0 0.889 0.0607 0.777 1.000
48 14 3 0.750 0.0896 0.594 0.948
60 12 1 0.697 0.0979 0.529 0.918
120 1 2 0.310 0.2262 0.074 1.000
RX_SUMM_RADIATION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 1 0.960 0.0392 0.886 1.000
24 21 2 0.877 0.0668 0.755 1.000
36 19 1 0.835 0.0755 0.699 0.997
48 14 1 0.788 0.0844 0.639 0.972
60 9 2 0.657 0.1102 0.473 0.913
120 2 1 0.575 0.1233 0.378 0.875
## Univariable Cox Proportional Hazard Model for: RX_SUMM_RADIATION_F
Loglik converged before variable 2 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
RX_SUMM_RADIATION_FBeam Radiation 7.291e-01 2.073e+00 6.903e-02 10.561 <2e-16 ***
RX_SUMM_RADIATION_FRadioactive Implants -1.193e+01 6.615e-06 6.128e+02 -0.019 0.984
RX_SUMM_RADIATION_FRadioisotopes 1.168e+00 3.217e+00 1.001e+00 1.168 0.243
RX_SUMM_RADIATION_FRadiation, NOS 4.504e-01 1.569e+00 3.351e-01 1.344 0.179
RX_SUMM_RADIATION_FUnknown 5.239e-01 1.689e+00 3.351e-01 1.563 0.118
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation 2.073e+00 4.824e-01 1.8108 2.374
RX_SUMM_RADIATION_FRadioactive Implants 6.615e-06 1.512e+05 0.0000 Inf
RX_SUMM_RADIATION_FRadioisotopes 3.217e+00 3.108e-01 0.4525 22.872
RX_SUMM_RADIATION_FRadiation, NOS 1.569e+00 6.374e-01 0.8135 3.026
RX_SUMM_RADIATION_FUnknown 1.689e+00 5.922e-01 0.8755 3.257
Concordance= 0.557 (se = 0.006 )
Rsquare= 0.018 (max possible= 0.964 )
Likelihood ratio test= 101.3 on 5 df, p=0
Wald test = 114.2 on 5 df, p=0
Score (logrank) test = 119.8 on 5 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_SUMM_RADIATION_F



Lymphovascular Invasion
#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
Endoscopic/Robotic
uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
2218 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg 2837 429 NA NA NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap 14 1 80.1 NA NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 394 52 NA NA NA
RX_HOSP_SURG_APPR_2010_F=Unknown 2 0 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
2218 observations deleted due to missingness
RX_HOSP_SURG_APPR_2010_F=No_Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2256 100 0.961 0.00379 0.954 0.969
24 1784 107 0.912 0.00585 0.901 0.924
36 1294 90 0.861 0.00765 0.846 0.876
48 848 73 0.803 0.00968 0.785 0.823
60 495 36 0.759 0.01166 0.737 0.783
RX_HOSP_SURG_APPR_2010_F=Endo_Lap
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11 0 1 0 1 1
24 7 0 1 0 1 1
36 6 0 1 0 1 1
48 5 0 1 0 1 1
60 2 0 1 0 1 1
RX_HOSP_SURG_APPR_2010_F=Open_Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 317 17 0.952 0.0114 0.930 0.975
24 258 14 0.906 0.0162 0.875 0.938
36 189 10 0.865 0.0199 0.827 0.905
48 140 4 0.845 0.0219 0.803 0.889
60 87 1 0.836 0.0234 0.792 0.883
RX_HOSP_SURG_APPR_2010_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 2 0 1 0 1 1
48 2 0 1 0 1 1
60 1 0 1 0 1 1
## Univariable Cox Proportional Hazard Model for: RX_HOSP_SURG_APPR_2010_F
Loglik converged before variable 3 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
n= 3247, number of events= 482
(2218 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RX_HOSP_SURG_APPR_2010_FEndo_Lap -7.298e-01 4.820e-01 1.001e+00 -0.729 0.466
RX_HOSP_SURG_APPR_2010_FOpen_Unknown -2.006e-01 8.182e-01 1.469e-01 -1.366 0.172
RX_HOSP_SURG_APPR_2010_FUnknown -1.303e+01 2.189e-06 8.775e+02 -0.015 0.988
exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FEndo_Lap 4.820e-01 2.075e+00 0.06774 3.430
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 8.182e-01 1.222e+00 0.61351 1.091
RX_HOSP_SURG_APPR_2010_FUnknown 2.189e-06 4.569e+05 0.00000 Inf
Concordance= 0.508 (se = 0.008 )
Rsquare= 0.001 (max possible= 0.89 )
Likelihood ratio test= 3.76 on 3 df, p=0.2889
Wald test = 2.37 on 3 df, p=0.5001
Score (logrank) test = 2.97 on 3 df, p=0.3956
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_HOSP_SURG_APPR_2010_F



Surgery Radiation Sequence
uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone 834 135 NA 147.6 NA
SURG_RAD_SEQ=Surg then Rad 118 35 106.5 92.8 NA
SURG_RAD_SEQ=Rad Alone 656 251 92.8 80.1 116
SURG_RAD_SEQ=No Treatment 3798 703 NA 158.3 NA
SURG_RAD_SEQ=Other 52 20 84.9 55.5 NA
SURG_RAD_SEQ=Rad before and after Surg 3 2 134.3 36.2 NA
SURG_RAD_SEQ=Rad then Surg 4 1 NA 15.8 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
SURG_RAD_SEQ=Surg Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 677 34 0.955 0.00751 0.941 0.970
24 579 26 0.916 0.01042 0.896 0.937
36 482 18 0.886 0.01227 0.862 0.910
48 395 19 0.849 0.01442 0.821 0.878
60 297 12 0.820 0.01618 0.789 0.852
120 58 22 0.723 0.02611 0.673 0.776
SURG_RAD_SEQ=Surg then Rad
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 105 6 0.948 0.0208 0.908 0.989
24 82 10 0.850 0.0347 0.785 0.921
36 68 6 0.784 0.0413 0.707 0.869
48 58 1 0.771 0.0424 0.693 0.859
60 45 3 0.727 0.0472 0.640 0.825
120 9 9 0.490 0.0749 0.363 0.661
SURG_RAD_SEQ=Rad Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 560 51 0.920 0.0108 0.899 0.941
24 447 57 0.821 0.0157 0.791 0.853
36 347 46 0.731 0.0187 0.696 0.769
48 263 34 0.655 0.0209 0.615 0.697
60 216 13 0.620 0.0219 0.579 0.665
120 44 45 0.430 0.0303 0.374 0.493
SURG_RAD_SEQ=No Treatment
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3105 148 0.958 0.00339 0.951 0.965
24 2625 132 0.915 0.00488 0.905 0.925
36 2125 122 0.869 0.00615 0.857 0.881
48 1697 91 0.828 0.00720 0.814 0.843
60 1330 68 0.792 0.00813 0.776 0.808
120 286 124 0.660 0.01367 0.634 0.688
SURG_RAD_SEQ=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 37 7 0.849 0.0527 0.752 0.959
24 33 2 0.802 0.0594 0.693 0.927
36 31 1 0.778 0.0624 0.664 0.910
48 26 1 0.752 0.0655 0.634 0.892
60 15 5 0.589 0.0823 0.448 0.775
120 4 3 0.412 0.1077 0.247 0.688
SURG_RAD_SEQ=Rad before and after Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 0 1.000 0.000 1.0 1
24 3 0 1.000 0.000 1.0 1
36 3 0 1.000 0.000 1.0 1
48 2 1 0.667 0.272 0.3 1
60 2 0 0.667 0.272 0.3 1
120 2 0 0.667 0.272 0.3 1
SURG_RAD_SEQ=Rad then Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 0 1.000 0.000 1.0 1
24 1 1 0.667 0.272 0.3 1
## Univariable Cox Proportional Hazard Model for: SURG_RAD_SEQ
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad 0.56100 1.75242 0.18969 2.957 0.003102 **
SURG_RAD_SEQRad Alone 0.88787 2.42996 0.10675 8.317 < 2e-16 ***
SURG_RAD_SEQNo Treatment 0.13661 1.14639 0.09399 1.453 0.146104
SURG_RAD_SEQOther 0.91828 2.50498 0.23963 3.832 0.000127 ***
SURG_RAD_SEQRad before and after Surg 0.81423 2.25744 0.71266 1.143 0.253235
SURG_RAD_SEQRad then Surg 1.39269 4.02565 1.00427 1.387 0.165511
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 1.752 0.5706 1.2083 2.542
SURG_RAD_SEQRad Alone 2.430 0.4115 1.9712 2.995
SURG_RAD_SEQNo Treatment 1.146 0.8723 0.9535 1.378
SURG_RAD_SEQOther 2.505 0.3992 1.5661 4.007
SURG_RAD_SEQRad before and after Surg 2.257 0.4430 0.5585 9.125
SURG_RAD_SEQRad then Surg 4.026 0.2484 0.5623 28.818
Concordance= 0.566 (se = 0.008 )
Rsquare= 0.021 (max possible= 0.964 )
Likelihood ratio test= 113.5 on 6 df, p=0
Wald test = 129.1 on 6 df, p=0
Score (logrank) test = 135.7 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURG_RAD_SEQ



Surgery Yes/No
uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n events median 0.95LCL 0.95UCL
SURGERY_YN=No 4465 957 158.3 155.1 NA
SURGERY_YN=Ukn 36 16 53.9 49.5 NA
SURGERY_YN=Yes 964 174 NA 145.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
SURGERY_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3673 200 0.952 0.00332 0.945 0.958
24 3082 187 0.901 0.00481 0.891 0.910
36 2480 169 0.848 0.00601 0.836 0.860
48 1965 126 0.801 0.00699 0.787 0.815
60 1551 81 0.765 0.00775 0.750 0.780
120 332 170 0.621 0.01259 0.597 0.647
SURGERY_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 24 6 0.807 0.0710 0.679 0.959
24 18 4 0.665 0.0872 0.514 0.860
36 18 0 0.665 0.0872 0.514 0.860
48 17 0 0.665 0.0872 0.514 0.860
60 9 4 0.490 0.0990 0.330 0.728
120 2 2 0.272 0.1335 0.104 0.712
SURGERY_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 793 40 0.955 0.00697 0.941 0.969
24 670 37 0.907 0.01011 0.888 0.927
36 558 24 0.873 0.01195 0.850 0.896
48 459 21 0.838 0.01368 0.811 0.865
60 345 16 0.805 0.01544 0.775 0.836
120 69 31 0.686 0.02545 0.638 0.737
## Univariable Cox Proportional Hazard Model for: SURGERY_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
SURGERY_YNUkn 0.91780 2.50379 0.25212 3.640 0.000272 ***
SURGERY_YNYes -0.18419 0.83178 0.08243 -2.234 0.025457 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn 2.5038 0.3994 1.5275 4.1040
SURGERY_YNYes 0.8318 1.2022 0.7077 0.9776
Concordance= 0.517 (se = 0.006 )
Rsquare= 0.003 (max possible= 0.964 )
Likelihood ratio test= 15.87 on 2 df, p=0.0003584
Wald test = 19.11 on 2 df, p=7.074e-05
Score (logrank) test = 20.25 on 2 df, p=4.008e-05
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURGERY_YN



Radiation Yes/No
uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
29 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RADIATION_YN=No 4653 847 NA 158 NA
RADIATION_YN=Yes 783 289 98.7 84 116
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
29 observations deleted due to missingness
RADIATION_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3794 186 0.957 0.00311 0.951 0.963
24 3214 158 0.915 0.00443 0.906 0.923
36 2617 140 0.872 0.00550 0.861 0.883
48 2102 110 0.832 0.00644 0.819 0.845
60 1633 83 0.796 0.00728 0.782 0.810
120 346 148 0.668 0.01228 0.644 0.692
RADIATION_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 673 57 0.925 0.00955 0.907 0.944
24 535 68 0.826 0.01418 0.799 0.855
36 420 52 0.741 0.01698 0.708 0.775
48 325 36 0.673 0.01882 0.637 0.711
60 263 16 0.637 0.01986 0.599 0.677
120 55 54 0.441 0.02796 0.390 0.499
## Univariable Cox Proportional Hazard Model for: RADIATION_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
n= 5436, number of events= 1136
(29 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RADIATION_YNYes 0.72002 2.05447 0.06815 10.56 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes 2.054 0.4867 1.798 2.348
Concordance= 0.556 (se = 0.006 )
Rsquare= 0.018 (max possible= 0.963 )
Likelihood ratio test= 98.22 on 1 df, p=0
Wald test = 111.6 on 1 df, p=0
Score (logrank) test = 116.5 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: RADIATION_YN



Chemo Yes/No
uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n events median 0.95LCL 0.95UCL
CHEMO_YN=No 3798 624 NA NA NA
CHEMO_YN=Yes 1480 490 120 102 NA
CHEMO_YN=Ukn 187 33 NA 127 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
CHEMO_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3118 126 0.964 0.00314 0.958 0.970
24 2657 103 0.930 0.00446 0.922 0.939
36 2166 102 0.892 0.00567 0.881 0.903
48 1729 85 0.854 0.00678 0.841 0.867
60 1345 52 0.825 0.00762 0.811 0.840
120 292 138 0.681 0.01384 0.654 0.708
CHEMO_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1221 114 0.919 0.00727 0.905 0.934
24 977 121 0.823 0.01052 0.803 0.844
36 771 89 0.743 0.01248 0.719 0.768
48 615 58 0.683 0.01373 0.657 0.711
60 486 42 0.633 0.01476 0.605 0.662
120 94 58 0.504 0.02033 0.466 0.546
CHEMO_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 151 6 0.964 0.0144 0.936 0.993
24 136 4 0.938 0.0191 0.901 0.976
36 119 2 0.924 0.0212 0.883 0.966
48 97 4 0.892 0.0258 0.843 0.944
60 74 7 0.822 0.0347 0.757 0.893
120 17 7 0.680 0.0617 0.569 0.812
## Univariable Cox Proportional Hazard Model for: CHEMO_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
CHEMO_YNYes 0.760848 2.140091 0.060395 12.598 <2e-16 ***
CHEMO_YNUkn 0.001495 1.001496 0.178646 0.008 0.993
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes 2.140 0.4673 1.9012 2.409
CHEMO_YNUkn 1.001 0.9985 0.7056 1.421
Concordance= 0.596 (se = 0.007 )
Rsquare= 0.028 (max possible= 0.964 )
Likelihood ratio test= 153.1 on 2 df, p=0
Wald test = 162.2 on 2 df, p=0
Score (logrank) test = 170.2 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: CHEMO_YN



Treatment Yes/No
uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
187 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 2468 332 NA NA NA
Tx_YN=TRUE 2810 782 144 132 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
187 observations deleted due to missingness
Tx_YN=FALSE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2019 67 0.971 0.00353 0.964 0.978
24 1728 51 0.945 0.00497 0.935 0.955
36 1400 53 0.913 0.00641 0.901 0.926
48 1120 42 0.883 0.00773 0.868 0.898
60 867 34 0.853 0.00900 0.836 0.871
120 192 77 0.714 0.01762 0.681 0.750
Tx_YN=TRUE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2320 173 0.935 0.00480 0.925 0.944
24 1906 173 0.861 0.00697 0.847 0.875
36 1537 138 0.795 0.00842 0.778 0.811
48 1224 101 0.739 0.00950 0.720 0.758
60 964 60 0.699 0.01027 0.679 0.720
120 194 119 0.560 0.01502 0.531 0.590
## Univariable Cox Proportional Hazard Model for: Tx_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
n= 5278, number of events= 1114
(187 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
Tx_YNTRUE 0.75720 2.13230 0.06553 11.55 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE 2.132 0.469 1.875 2.425
Concordance= 0.596 (se = 0.008 )
Rsquare= 0.027 (max possible= 0.964 )
Likelihood ratio test= 144.9 on 1 df, p=0
Wald test = 133.5 on 1 df, p=0
Score (logrank) test = 140 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: Tx_YN



Tumor Size
uni_var(test_var = "T_SIZE", data_imp = data)
_________________________________________________
## T_SIZE
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ T_SIZE, data = data)
n events median 0.95LCL 0.95UCL
T_SIZE=No Tumor 33 2 NA NA NA
T_SIZE=Microscopic focus 5 3 49.5 32.0 NA
T_SIZE=< 1 cm 72 9 NA 132.1 NA
T_SIZE=1-2 cm 50 7 NA NA NA
T_SIZE=2-3 cm 48 9 NA NA NA
T_SIZE=3-4 cm 46 11 141.7 NA NA
T_SIZE=4-5 cm 45 14 NA 51.0 NA
T_SIZE=5-6 cm 32 11 135.7 48.9 NA
T_SIZE=>6 cm 200 58 155.1 127.9 NA
T_SIZE=NA_unk 4934 1023 158.3 158.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ T_SIZE, data = data)
T_SIZE=No Tumor
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 0 1.00 0.0000 1.00 1
24 20 2 0.92 0.0544 0.82 1
36 13 0 0.92 0.0544 0.82 1
48 9 0 0.92 0.0544 0.82 1
60 5 0 0.92 0.0544 0.82 1
120 1 0 0.92 0.0544 0.82 1
T_SIZE=Microscopic focus
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 1 0.8 0.179 0.516 1
24 4 0 0.8 0.179 0.516 1
36 3 1 0.6 0.219 0.293 1
48 3 0 0.6 0.219 0.293 1
60 1 1 0.4 0.219 0.137 1
120 1 0 0.4 0.219 0.137 1
T_SIZE=< 1 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 59 3 0.952 0.0273 0.900 1.000
24 50 3 0.900 0.0387 0.828 0.979
36 47 0 0.900 0.0387 0.828 0.979
48 44 0 0.900 0.0387 0.828 0.979
60 34 1 0.875 0.0453 0.790 0.968
120 7 1 0.849 0.0508 0.755 0.954
T_SIZE=1-2 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 42 1 0.978 0.0220 0.936 1.000
24 39 1 0.954 0.0319 0.894 1.000
36 34 2 0.902 0.0466 0.815 0.998
48 27 2 0.844 0.0591 0.736 0.968
60 20 1 0.809 0.0663 0.689 0.950
120 6 0 0.809 0.0663 0.689 0.950
T_SIZE=2-3 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 43 1 0.978 0.0220 0.936 1.000
24 36 4 0.883 0.0493 0.791 0.985
36 33 2 0.832 0.0580 0.726 0.954
48 30 0 0.832 0.0580 0.726 0.954
60 25 0 0.832 0.0580 0.726 0.954
120 8 2 0.721 0.0903 0.564 0.921
T_SIZE=3-4 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40 3 0.934 0.0367 0.865 1.000
24 32 1 0.911 0.0426 0.831 0.998
36 26 3 0.821 0.0627 0.707 0.953
48 22 2 0.755 0.0728 0.625 0.912
60 17 0 0.755 0.0728 0.625 0.912
120 4 1 0.711 0.0810 0.568 0.888
T_SIZE=4-5 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 38 4 0.905 0.0453 0.820 0.998
24 30 4 0.805 0.0620 0.692 0.936
36 25 1 0.775 0.0665 0.655 0.917
48 19 3 0.675 0.0793 0.536 0.850
60 14 2 0.591 0.0891 0.439 0.794
120 4 0 0.591 0.0891 0.439 0.794
T_SIZE=5-6 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25 2 0.933 0.0457 0.848 1.000
24 21 3 0.817 0.0746 0.683 0.977
36 17 1 0.776 0.0813 0.632 0.953
48 13 2 0.672 0.0980 0.505 0.895
60 10 1 0.621 0.1032 0.448 0.860
120 1 1 0.517 0.1277 0.319 0.839
T_SIZE=>6 cm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 166 14 0.926 0.0191 0.889 0.964
24 146 13 0.853 0.0262 0.803 0.906
36 132 9 0.799 0.0301 0.742 0.860
48 121 4 0.774 0.0316 0.715 0.839
60 110 2 0.762 0.0323 0.701 0.828
120 24 13 0.625 0.0463 0.540 0.723
T_SIZE=NA_unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4045 217 0.953 0.00314 0.947 0.959
24 3392 197 0.904 0.00453 0.895 0.912
36 2726 174 0.854 0.00564 0.843 0.865
48 2153 134 0.808 0.00659 0.795 0.821
60 1669 93 0.769 0.00739 0.755 0.784
120 347 185 0.622 0.01232 0.598 0.647
## Univariable Cox Proportional Hazard Model for: T_SIZE
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ T_SIZE, data = data)
n= 5465, number of events= 1147
coef exp(coef) se(coef) z Pr(>|z|)
T_SIZEMicroscopic focus 1.8551 6.3921 0.9130 2.032 0.0422 *
T_SIZE< 1 cm 0.2814 1.3250 0.7819 0.360 0.7189
T_SIZE1-2 cm 0.4119 1.5097 0.8019 0.514 0.6075
T_SIZE2-3 cm 0.5899 1.8038 0.7819 0.754 0.4506
T_SIZE3-4 cm 1.0296 2.7999 0.7688 1.339 0.1805
T_SIZE4-5 cm 1.3601 3.8966 0.7561 1.799 0.0720 .
T_SIZE5-6 cm 1.4693 4.3462 0.7688 1.911 0.0560 .
T_SIZE>6 cm 1.0531 2.8665 0.7194 1.464 0.1432
T_SIZENA_unk 0.9472 2.5786 0.7079 1.338 0.1808
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
T_SIZEMicroscopic focus 6.392 0.1564 1.0678 38.266
T_SIZE< 1 cm 1.325 0.7547 0.2862 6.134
T_SIZE1-2 cm 1.510 0.6624 0.3136 7.269
T_SIZE2-3 cm 1.804 0.5544 0.3896 8.351
T_SIZE3-4 cm 2.800 0.3572 0.6205 12.634
T_SIZE4-5 cm 3.897 0.2566 0.8853 17.150
T_SIZE5-6 cm 4.346 0.2301 0.9632 19.612
T_SIZE>6 cm 2.867 0.3489 0.6998 11.741
T_SIZENA_unk 2.579 0.3878 0.6439 10.326
Concordance= 0.518 (se = 0.005 )
Rsquare= 0.003 (max possible= 0.964 )
Likelihood ratio test= 18.47 on 9 df, p=0.03011
Wald test = 17.48 on 9 df, p=0.04173
Score (logrank) test = 18.18 on 9 df, p=0.03316
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: T_SIZE



Tumor specific Variables
Node Size
Cox Proportional Hazard Ratio
Model #1
Full analysis
model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
data = data)
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F +
INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F +
EDUCATION_F, data = data)
n= 4371, number of events= 1069
(1094 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad 0.400643 1.492784 0.202657 1.977 0.048047 *
SURG_RAD_SEQRad Alone 0.496388 1.642777 0.115618 4.293 1.76e-05 ***
SURG_RAD_SEQNo Treatment 0.073587 1.076362 0.099962 0.736 0.461642
SURG_RAD_SEQOther 0.601147 1.824210 0.257473 2.335 0.019554 *
SURG_RAD_SEQRad before and after Surg 0.983130 2.672810 0.739498 1.329 0.183697
SURG_RAD_SEQRad then Surg 1.205661 3.338967 1.009296 1.195 0.232260
INSURANCE_FNone 0.224167 1.251280 0.205128 1.093 0.274475
INSURANCE_FMedicaid 0.542554 1.720396 0.167361 3.242 0.001188 **
INSURANCE_FMedicare 0.319467 1.376394 0.086262 3.703 0.000213 ***
INSURANCE_FOther Government 0.228550 1.256777 0.252553 0.905 0.365487
INSURANCE_FUnknown 0.229491 1.257960 0.187185 1.226 0.220194
AGE 0.053402 1.054854 0.003465 15.411 < 2e-16 ***
SEX_FFemale -0.360709 0.697182 0.064316 -5.608 2.04e-08 ***
RACE_FBlack 0.283804 1.328172 0.089233 3.180 0.001470 **
RACE_FOther/Unk -0.430709 0.650048 0.228650 -1.884 0.059605 .
RACE_FAsian -0.320348 0.725896 0.264911 -1.209 0.226560
INCOME_F$38,000 - $47,999 0.086740 1.090613 0.101840 0.852 0.394367
INCOME_F$48,000 - $62,999 -0.029468 0.970962 0.114329 -0.258 0.796602
INCOME_F$63,000 + -0.099017 0.905727 0.132458 -0.748 0.454741
U_R_FUrban 0.076730 1.079751 0.096166 0.798 0.424934
U_R_FRural -0.059801 0.941952 0.244242 -0.245 0.806578
FACILITY_TYPE_FComprehensive Comm Ca Program -0.193590 0.823995 0.171547 -1.128 0.259109
FACILITY_TYPE_FAcademic/Research Program -0.292537 0.746368 0.156985 -1.863 0.062396 .
FACILITY_TYPE_FIntegrated Network Ca Program -0.090929 0.913083 0.191020 -0.476 0.634063
FACILITY_LOCATION_FMiddle Atlantic -0.216694 0.805176 0.152120 -1.424 0.154303
FACILITY_LOCATION_FSouth Atlantic -0.209558 0.810942 0.154188 -1.359 0.174113
FACILITY_LOCATION_FEast North Central -0.149151 0.861439 0.158167 -0.943 0.345685
FACILITY_LOCATION_FEast South Central -0.076383 0.926461 0.186001 -0.411 0.681323
FACILITY_LOCATION_FWest North Central 0.128827 1.137493 0.179871 0.716 0.473856
FACILITY_LOCATION_FWest South Central 0.040642 1.041479 0.190605 0.213 0.831150
FACILITY_LOCATION_FMountain -0.449264 0.638098 0.217990 -2.061 0.039309 *
FACILITY_LOCATION_FPacific -0.029293 0.971131 0.168444 -0.174 0.861939
EDUCATION_F13 - 20.9% -0.168731 0.844736 0.099115 -1.702 0.088687 .
EDUCATION_F7 - 12.9% -0.227838 0.796253 0.111032 -2.052 0.040169 *
EDUCATION_FLess than 7% -0.360131 0.697585 0.135547 -2.657 0.007887 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 1.4928 0.6699 1.0034 2.2207
SURG_RAD_SEQRad Alone 1.6428 0.6087 1.3097 2.0606
SURG_RAD_SEQNo Treatment 1.0764 0.9291 0.8849 1.3093
SURG_RAD_SEQOther 1.8242 0.5482 1.1013 3.0216
SURG_RAD_SEQRad before and after Surg 2.6728 0.3741 0.6273 11.3875
SURG_RAD_SEQRad then Surg 3.3390 0.2995 0.4618 24.1394
INSURANCE_FNone 1.2513 0.7992 0.8370 1.8705
INSURANCE_FMedicaid 1.7204 0.5813 1.2393 2.3883
INSURANCE_FMedicare 1.3764 0.7265 1.1623 1.6299
INSURANCE_FOther Government 1.2568 0.7957 0.7661 2.0617
INSURANCE_FUnknown 1.2580 0.7949 0.8716 1.8155
AGE 1.0549 0.9480 1.0477 1.0620
SEX_FFemale 0.6972 1.4343 0.6146 0.7908
RACE_FBlack 1.3282 0.7529 1.1151 1.5820
RACE_FOther/Unk 0.6500 1.5383 0.4153 1.0176
RACE_FAsian 0.7259 1.3776 0.4319 1.2200
INCOME_F$38,000 - $47,999 1.0906 0.9169 0.8933 1.3315
INCOME_F$48,000 - $62,999 0.9710 1.0299 0.7760 1.2148
INCOME_F$63,000 + 0.9057 1.1041 0.6986 1.1742
U_R_FUrban 1.0798 0.9261 0.8943 1.3037
U_R_FRural 0.9420 1.0616 0.5836 1.5203
FACILITY_TYPE_FComprehensive Comm Ca Program 0.8240 1.2136 0.5887 1.1533
FACILITY_TYPE_FAcademic/Research Program 0.7464 1.3398 0.5487 1.0153
FACILITY_TYPE_FIntegrated Network Ca Program 0.9131 1.0952 0.6279 1.3277
FACILITY_LOCATION_FMiddle Atlantic 0.8052 1.2420 0.5976 1.0849
FACILITY_LOCATION_FSouth Atlantic 0.8109 1.2331 0.5994 1.0971
FACILITY_LOCATION_FEast North Central 0.8614 1.1608 0.6318 1.1745
FACILITY_LOCATION_FEast South Central 0.9265 1.0794 0.6434 1.3340
FACILITY_LOCATION_FWest North Central 1.1375 0.8791 0.7995 1.6183
FACILITY_LOCATION_FWest South Central 1.0415 0.9602 0.7168 1.5132
FACILITY_LOCATION_FMountain 0.6381 1.5672 0.4162 0.9782
FACILITY_LOCATION_FPacific 0.9711 1.0297 0.6981 1.3510
EDUCATION_F13 - 20.9% 0.8447 1.1838 0.6956 1.0259
EDUCATION_F7 - 12.9% 0.7963 1.2559 0.6405 0.9898
EDUCATION_FLess than 7% 0.6976 1.4335 0.5348 0.9099
Concordance= 0.731 (se = 0.01 )
Rsquare= 0.153 (max possible= 0.977 )
Likelihood ratio test= 725.6 on 35 df, p=0
Wald test = 701 on 35 df, p=0
Score (logrank) test = 761.5 on 35 df, p=0
Summary of Model
model_one %>%
tidy(., exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Variable = term,
Hazard_Ratio = estimate) %>%
tbl_df %>%
print(n = nrow(.))
Linear Regression
summary(fit_surv) # R^2 =0.3696, p < 2.2e-16
Call:
lm(formula = DX_LASTCONTACT_DEATH_MONTHS ~ FACILITY_TYPE_F +
FACILITY_LOCATION_F + CROWFLY + DX_STAGING_PROC_DAYS + CHEMO_YN +
RADIATION_YN + SURGERY_YN + AGE_F + SEX_F + RACE_F + INSURANCE_F +
YEAR_OF_DIAGNOSIS + SITE_TEXT + GRADE_F, data = data2)
Residuals:
Min 1Q Median 3Q Max
-96.453 -19.772 3.944 20.642 82.142
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 89.628467 21.407978 4.187 2.90e-05 ***
FACILITY_TYPE_FComprehensive Comm Ca Program 2.813109 4.109084 0.685 0.493640
FACILITY_TYPE_FAcademic/Research Program 6.894343 3.864299 1.784 0.074497 .
FACILITY_TYPE_FIntegrated Network Ca Program 5.785490 4.488508 1.289 0.197503
FACILITY_LOCATION_FMiddle Atlantic 8.435720 2.692362 3.133 0.001744 **
FACILITY_LOCATION_FSouth Atlantic 13.491254 2.738074 4.927 8.75e-07 ***
FACILITY_LOCATION_FEast North Central 11.250381 2.815132 3.996 6.57e-05 ***
FACILITY_LOCATION_FEast South Central 10.574569 3.502935 3.019 0.002557 **
FACILITY_LOCATION_FWest North Central 6.120303 3.239369 1.889 0.058932 .
FACILITY_LOCATION_FWest South Central 7.447789 3.494516 2.131 0.033140 *
FACILITY_LOCATION_FMountain 7.043860 3.626771 1.942 0.052199 .
FACILITY_LOCATION_FPacific 12.037174 2.993467 4.021 5.92e-05 ***
CROWFLY -0.009827 0.005143 -1.911 0.056091 .
DX_STAGING_PROC_DAYS 0.015668 0.007061 2.219 0.026564 *
CHEMO_YNYes -4.423477 1.200173 -3.686 0.000232 ***
RADIATION_YNYes -3.563553 1.561388 -2.282 0.022535 *
SURGERY_YNYes -1.183839 2.101396 -0.563 0.573229
AGE_F(54,64] -2.400930 1.407567 -1.706 0.088152 .
AGE_F(64,74] -3.813776 1.926902 -1.979 0.047873 *
AGE_F(74,100] -13.521905 2.158190 -6.265 4.20e-10 ***
SEX_FFemale 2.176720 1.097520 1.983 0.047416 *
RACE_FBlack -0.933923 1.459526 -0.640 0.522294
RACE_FOther/Unk 2.860552 3.009294 0.951 0.341891
RACE_FAsian 4.706167 3.144633 1.497 0.134600
INSURANCE_FNone -3.958138 3.191021 -1.240 0.214916
INSURANCE_FMedicaid -5.861665 2.786863 -2.103 0.035513 *
INSURANCE_FMedicare -2.943364 1.718720 -1.713 0.086892 .
INSURANCE_FOther Government 1.496805 4.832453 0.310 0.756778
INSURANCE_FUnknown -2.196266 3.582093 -0.613 0.539837
YEAR_OF_DIAGNOSIS2005 -9.707359 3.196101 -3.037 0.002406 **
YEAR_OF_DIAGNOSIS2006 -13.915031 3.217578 -4.325 1.57e-05 ***
YEAR_OF_DIAGNOSIS2007 -15.364272 3.282049 -4.681 2.96e-06 ***
YEAR_OF_DIAGNOSIS2008 -28.614282 3.141599 -9.108 < 2e-16 ***
YEAR_OF_DIAGNOSIS2009 -30.350991 2.995996 -10.131 < 2e-16 ***
YEAR_OF_DIAGNOSIS2010 -31.816941 3.241358 -9.816 < 2e-16 ***
YEAR_OF_DIAGNOSIS2011 -38.636048 3.238598 -11.930 < 2e-16 ***
YEAR_OF_DIAGNOSIS2012 -48.928044 3.221579 -15.188 < 2e-16 ***
YEAR_OF_DIAGNOSIS2013 -56.094859 3.153621 -17.787 < 2e-16 ***
YEAR_OF_DIAGNOSIS2014 -62.497426 3.154091 -19.815 < 2e-16 ***
YEAR_OF_DIAGNOSIS2015 -70.204141 3.133592 -22.404 < 2e-16 ***
SITE_TEXTC44.1 Eyelid -0.653735 17.411644 -0.038 0.970052
SITE_TEXTC44.2 External ear -11.513686 20.770551 -0.554 0.579392
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 5.960018 10.864111 0.549 0.583319
SITE_TEXTC44.4 Skin of scalp and neck -1.232777 11.457868 -0.108 0.914326
SITE_TEXTC44.5 Skin of trunk 0.598272 10.476257 0.057 0.954463
SITE_TEXTC44.6 Skin of upper limb and shoulder -4.861995 10.666797 -0.456 0.648559
SITE_TEXTC44.7 Skin of lower limb and hip 3.493894 10.531821 0.332 0.740102
SITE_TEXTC44.8 Overlapping lesion of skin -5.912364 10.523587 -0.562 0.574277
SITE_TEXTC44.9 Skin, NOS -2.382137 10.409073 -0.229 0.818998
SITE_TEXTC51.9 Vulva, NOS -46.705549 33.020604 -1.414 0.157328
GRADE_F5 -8.816677 18.069291 -0.488 0.625627
GRADE_F6 -21.250567 22.100666 -0.962 0.336353
GRADE_F7 -71.382326 35.993593 -1.983 0.047428 *
GRADE_F8 -22.119326 28.548023 -0.775 0.438507
GRADE_FNA/Unkown -4.501088 18.041533 -0.249 0.803001
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 31.04 on 3313 degrees of freedom
(1876 observations deleted due to missingness)
Multiple R-squared: 0.3705, Adjusted R-squared: 0.3602
F-statistic: 36.11 on 54 and 3313 DF, p-value: < 2.2e-16
Prediction Logistic Regression Models
Surgery
Chemo
Radiation
Immunotherapy
Any Treatment
exp(cbind("Odds ratio" = coef(fit_tx), confint.default(fit_tx, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 1.8125904 0.9042027 3.6335702
FACILITY_TYPE_FComprehensive Comm Ca Program 1.0253245 0.8824349 1.1913517
FACILITY_TYPE_FAcademic/Research Program 0.9947215 0.8630706 1.1464543
FACILITY_TYPE_FIntegrated Network Ca Program 1.1246399 0.9555566 1.3236420
FACILITY_LOCATION_FMiddle Atlantic 0.8251561 0.7517163 0.9057708
FACILITY_LOCATION_FSouth Atlantic 0.9066385 0.8221963 0.9997533
FACILITY_LOCATION_FEast North Central 0.8629317 0.7807270 0.9537920
FACILITY_LOCATION_FEast South Central 0.9330546 0.8236517 1.0569891
FACILITY_LOCATION_FWest North Central 0.9044956 0.8088575 1.0114419
FACILITY_LOCATION_FWest South Central 0.9000475 0.7943760 1.0197759
FACILITY_LOCATION_FMountain 0.8675856 0.7631586 0.9863018
FACILITY_LOCATION_FPacific 0.8372115 0.7529223 0.9309369
CROWFLY 1.0000428 0.9998566 1.0002290
DX_STAGING_PROC_DAYS 0.9999669 0.9997448 1.0001890
AGE_F(54,64] 1.0093564 0.9599375 1.0613195
AGE_F(64,74] 0.9549939 0.8914452 1.0230728
AGE_F(74,100] 1.0431291 0.9645046 1.1281631
SEX_FFemale 0.9468347 0.9102895 0.9848471
RACE_FBlack 0.9300628 0.8799143 0.9830694
RACE_FOther/Unk 0.9529697 0.8517724 1.0661900
RACE_FAsian 0.8875845 0.7891582 0.9982869
HISPANICYes 0.9465190 0.8615838 1.0398271
HISPANICUnknown 0.9695660 0.8639252 1.0881246
INSURANCE_FNone 0.9829046 0.8692851 1.1113747
INSURANCE_FMedicaid 0.9801813 0.8854602 1.0850352
INSURANCE_FMedicare 0.9828550 0.9237200 1.0457758
INSURANCE_FOther Government 1.0598219 0.9021066 1.2451107
INSURANCE_FUnknown 0.9306867 0.8111247 1.0678723
INCOME_F$38,000 - $47,999 1.0307364 0.9600322 1.1066477
INCOME_F$48,000 - $62,999 1.0306063 0.9551945 1.1119718
INCOME_F$63,000 + 1.0487589 0.9640823 1.1408727
EDUCATION_F13 - 20.9% 0.9943241 0.9276803 1.0657555
EDUCATION_F7 - 12.9% 0.9497827 0.8796005 1.0255648
EDUCATION_FLess than 7% 0.9037458 0.8283422 0.9860134
YEAR_OF_DIAGNOSIS2005 0.8322923 0.7062462 0.9808343
YEAR_OF_DIAGNOSIS2006 0.8619544 0.7234781 1.0269355
YEAR_OF_DIAGNOSIS2007 0.8702372 0.7274895 1.0409947
YEAR_OF_DIAGNOSIS2008 0.9578970 0.8126861 1.1290541
YEAR_OF_DIAGNOSIS2009 0.9186296 0.7851651 1.0747806
YEAR_OF_DIAGNOSIS2010 0.9321020 0.8117976 1.0702349
YEAR_OF_DIAGNOSIS2011 0.8715563 0.7589584 1.0008589
YEAR_OF_DIAGNOSIS2012 0.8837268 0.7698432 1.0144574
YEAR_OF_DIAGNOSIS2013 0.8473002 0.7391486 0.9712764
YEAR_OF_DIAGNOSIS2014 0.8611758 0.7513337 0.9870766
YEAR_OF_DIAGNOSIS2015 0.8404924 0.7335528 0.9630220
SITE_TEXTC44.1 Eyelid 1.6622660 0.9467048 2.9186799
SITE_TEXTC44.2 External ear 1.3303844 0.6858572 2.5805992
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 1.3639397 0.9328283 1.9942917
SITE_TEXTC44.4 Skin of scalp and neck 1.1202328 0.7514063 1.6700970
SITE_TEXTC44.5 Skin of trunk 0.9114366 0.6317181 1.3150116
SITE_TEXTC44.6 Skin of upper limb and shoulder 0.9945949 0.6848986 1.4443291
SITE_TEXTC44.7 Skin of lower limb and hip 0.9578226 0.6624640 1.3848664
SITE_TEXTC44.8 Overlapping lesion of skin 1.1278267 0.7806372 1.6294290
SITE_TEXTC44.9 Skin, NOS 1.0599761 0.7366999 1.5251112
GRADE_F5 1.2049156 0.6886015 2.1083624
GRADE_F6 1.5811234 0.7970171 3.1366341
GRADE_F7 1.8795002 0.6150310 5.7436471
GRADE_F8 1.2347141 0.5088996 2.9957168
LS0tCnRpdGxlOiAiTXljb3NpcyBGdW5nb2lkZXMiCmF1dGhvcjogIlJhbWllIEZhdGh5IgpkYXRlOiAiMTIvMTYvMjAxOSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogdW5pdGVkCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKLS0tCgpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KCmxpYnJhcnkoImdncGxvdDIiKQpsaWJyYXJ5KCJkcGx5ciIpCmxpYnJhcnkoInRpZHlyIikKbGlicmFyeSgia25pdHIiKQpsaWJyYXJ5KCJ0YWJsZW9uZSIpCmxpYnJhcnkoImZvcmNhdHMiKQpsaWJyYXJ5KCJzdXJ2aXZhbCIpCmxpYnJhcnkoIm5wc3VydiIpCmxpYnJhcnkoImJyb29tIikKbGlicmFyeSgidGliYmxlIikKbGlicmFyeSgicmVhZHIiKQpsaWJyYXJ5KCJzdXJ2bWluZXIiKQpsaWJyYXJ5KCJzdHJpbmdyIikKCgprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPVRSVUUpCiclIWluJScgPC0gZnVuY3Rpb24oeCx5KSEoJyVpbiUnKHgseSkpCmBgYAoKYGBge3J9CnBfdGFibGUgPC0gZnVuY3Rpb24odGFiX2RhdGEsIC4uLikgewogIHRhYl9kYXRhXzIgPC0gZGVwYXJzZShzdWJzdGl0dXRlKHRhYl9kYXRhKSkKICAKICB0YWJsZV9wIDwtIGRvLmNhbGwoQ3JlYXRlVGFibGVPbmUsIAogICAgICAgICAgICAgICAgICAgICBsaXN0KGRhdGEgPSBhcy5uYW1lKHRhYl9kYXRhXzIpLCBpbmNsdWRlTkEgPSBUUlVFLCAuLi4pKQogIHRhYmxlX3Bfb3V0IDwtIHByaW50KHRhYmxlX3AsCiAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FsbExldmVscyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRUb2dnbGUgPSBGQUxTRSkKICBrYWJsZSh0YWJsZV9wX291dCwKICAgICAgICBhbGlnbiA9ICJjIikKfQpgYGAKCmBgYHtyfQp1bmlfdmFyIDwtIGZ1bmN0aW9uKHRlc3RfdmFyLCBkYXRhX2ltcCkgewoKICAgICAgICAgICAgICAgIAogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCIgICBcbiMjIiwgdGVzdF92YXIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIikKICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgCiAgICAgICAgZiA8LSBhcy5mb3JtdWxhKHBhc3RlKCJTdXJ2KERYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUywgUFVGX1ZJVEFMX1NUQVRVUyA9PSAwKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLm5hbWUodGVzdF92YXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXAgPSAiIH4gIiApKQogICAgICAgIAogICAgICAgIGRhdGFfaW1wXzIgPC0gZGVwYXJzZShzdWJzdGl0dXRlKGRhdGFfaW1wKSkKCiAgICAgICAga21fZml0IDwtIGRvLmNhbGwoInN1cnZmaXQiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgIHByaW50KGttX2ZpdCkKICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgcHJpbnQoc3VtbWFyeShrbV9maXQsIHRpbWVzID0gYygxMiwgMjQsIDM2LCA0OCwgNjAsIDEyMCkpKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCIgICBcbiMjIFVuaXZhcmlhYmxlIENveCBQcm9wb3J0aW9uYWwgSGF6YXJkIE1vZGVsIGZvcjogIiwgdGVzdF92YXIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJcbiIpCgoKICAgICAgICBuX2xldmVscyA8LSBubGV2ZWxzKGRhdGFfaW1wW1t0ZXN0X3Zhcl1dKQoKICAgICAgICBpZihuX2xldmVscyA9PSAxKXsKICAgICAgICAgICAgICAgIHByaW50KCJPbmx5IG9uZSBsZXZlbCwgbm8gQ294IG1vZGVsIHBlcmZvcm1lZCIpCiAgICAgICAgICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgfSBlbHNlIHsKCgogICAgICAgICAgICAgICAgY294X2ZpdCA8LSBkby5jYWxsKCJjb3hwaCIsIGxpc3QoZm9ybXVsYSA9IGYsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpKSkKCiAgICAgICAgICAgICAgICBwcmludChzdW1tYXJ5KGNveF9maXQpKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvLmNhbGwoImdnZm9yZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobW9kZWwgPSBjb3hfZml0LCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgoKICAgICAgICB9CgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbmFkanVzdGVkIEthcGxhbiBNZWllciBPdmVyYWxsIFN1cnZpdmFsIEN1cnZlIGZvcjogIiwgdGVzdF92YXIpCgoKICAgICAgICBwIDwtIGRvLmNhbGwoImdnc3VydnBsb3QiLAogICAgICAgICAgICAgICAgICAgICBsaXN0KGZpdCA9IGttX2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJqY28iLCBjZW5zb3IgPSBGQUxTRSwgbGVnZW5kID0gInJpZ2h0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5ldHlwZSA9ICJzdHJhdGEiLCB4bGFiID0gIlRpbWUgKE1vbnRocykiKSkKCiAgICAgICAgcHJpbnQocCkKCn0KCmBgYAoKYGBge3IgY2h1bmsyLCBjYWNoZT1UUlVFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCByZXN1bHRzPSdoaWRlJ30KY29sLndpZHRoIDwtIGMoMzcsIDEwLCAxLCAxLCAzLCAxLCAyLCAxLCAyLCAxLCAxLCAxLCAxLCAxLCAxLCA4LCAyLCAyLCAyLCA0LCA0LCAxLCA0LCAxLCAxLAogICAgICAgICAgICAgICAxLCAzLCAyLCAyLCA4LCAyLCA1LCA1LCA1LCA0LCA1LCA1LCA1LDQsIDIsIDEsIDIsIDEsIDMsIDEsIDEsIDEsIDEsIDEsIDEsIDMsCiAgICAgICAgICAgICAgIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDYsIDgsCiAgICAgICAgICAgICAgIDgsIDgsIDIsIDEsIDEsIDEsIDEsIDgsIDEsIDEsIDgsIDEsIDEsIDIsIDIsIDUsIDIsIDUsIDMsIDEsIDMsIDEsIDgsIDgsIDIsIDgsCiAgICAgICAgICAgICAgIDIsIDgsIDIsIDIsIDEsIDgsIDEsIDEsIDEsIDEsIDEsIDgsIDEsIDIsIDIsIDIsIDIsIDIsIDEsIDEsIDEsIDIsIDEsIDMsIDEsIDEsCiAgICAgICAgICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEpCgpjb2wubmFtZXMuYWJyIDwtIGMoIlBVRl9DQVNFX0lEIiwgIlBVRl9GQUNJTElUWV9JRCIsICJGQUNJTElUWV9UWVBFX0NEIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0NEIiwKICAgICAgICAgICAgICAgICAgICJBR0UiLCAiU0VYIiwgIlJBQ0UiLCAiU1BBTklTSF9ISVNQQU5JQ19PUklHSU4iLCAiSU5TVVJBTkNFX1NUQVRVUyIsCiAgICAgICAgICAgICAgICAgICAiTUVEX0lOQ19RVUFSXzAwIiwgIk5PX0hTRF9RVUFSXzAwIiwgIlVSX0NEXzAzIiwgIk1FRF9JTkNfUVVBUl8xMiIsICJOT19IU0RfUVVBUl8xMiIsCiAgICAgICAgICAgICAgICAgICAiVVJfQ0RfMTMiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLCAiU0VRVUVOQ0VfTlVNQkVSIiwgIkNMQVNTX09GX0NBU0UiLAogICAgICAgICAgICAgICAgICAgIllFQVJfT0ZfRElBR05PU0lTIiwgIlBSSU1BUllfU0lURSIsICJMQVRFUkFMSVRZIiwgIkhJU1RPTE9HWSIsICJCRUhBVklPUiIsICJHUkFERSIsCiAgICAgICAgICAgICAgICAgICAiRElBR05PU1RJQ19DT05GSVJNQVRJT04iLCAiVFVNT1JfU0laRSIsICJSRUdJT05BTF9OT0RFU19QT1NJVElWRSIsCiAgICAgICAgICAgICAgICAgICAiUkVHSU9OQUxfTk9ERVNfRVhBTUlORUQiLCAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiUlhfU1VNTV9EWFNUR19QUk9DIiwgIlROTV9DTElOX1QiLAogICAgICAgICAgICAgICAgICAgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsICJUTk1fQ0xJTl9TVEFHRV9HUk9VUCIsICJUTk1fUEFUSF9UIiwgIlROTV9QQVRIX04iLCAiVE5NX1BBVEhfTSIsCiAgICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiVE5NX0VESVRJT05fTlVNQkVSIiwgIkFOQUxZVElDX1NUQUdFX0dST1VQIiwgIkNTX01FVFNfQVRfRFgiLAogICAgICAgICAgICAgICAgICAgIkNTX01FVFNfRVZBTCIsICJDU19FWFRFTlNJT04iLCAiQ1NfVFVNT1JfU0laRUVYVF9FVkFMIiwgIkNTX01FVFNfRFhfQk9ORSIsICJDU19NRVRTX0RYX0JSQUlOIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0RYX0xJVkVSIiwgIkNTX01FVFNfRFhfTFVORyIsICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl80IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzUiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl82IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNyIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl84IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEwIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzExIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMyIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE1IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTYiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTciLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE5IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIwIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjEiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMyIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI0IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjUiLAogICAgICAgICAgICAgICAgICAgIkNTX1ZFUlNJT05fTEFURVNUIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TVVJHX1BSSU1fU0lURSIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwIiwgIlJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fU1VSIiwgIlJYX1NVTU1fU1VSR19PVEhfUkVHRElTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiUkVBRE1fSE9TUF8zMF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1NVUkdFUlkiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICJSWF9TVU1NX1JBRElBVElPTiIsICJSQURfTE9DQVRJT05fT0ZfUlgiLAogICAgICAgICAgICAgICAgICAgIlJBRF9UUkVBVF9WT0wiLCAiUkFEX1JFR0lPTkFMX1JYX01PREFMSVRZIiwgIlJBRF9SRUdJT05BTF9ET1NFX0NHWSIsICJSQURfQk9PU1RfUlhfTU9EQUxJVFkiLAogICAgICAgICAgICAgICAgICAgIlJBRF9CT09TVF9ET1NFX0NHWSIsICJSQURfTlVNX1RSRUFUX1ZPTCIsICJSWF9TVU1NX1NVUkdSQURfU0VRIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJFQVNPTl9GT1JfTk9fUkFESUFUSU9OIiwgIkRYX1NZU1RFTUlDX1NUQVJURURfREFZUyIsICJEWF9DSEVNT19TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9DSEVNTyIsCiAgICAgICAgICAgICAgICAgICAiRFhfSE9STU9ORV9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9IT1JNT05FIiwgIkRYX0lNTVVOT19TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9JTU1VTk9USEVSQVBZIiwKICAgICAgICAgICAgICAgICAgICJSWF9TVU1NX1RSTlNQTE5UX0VORE8iLCAiUlhfU1VNTV9TWVNURU1JQ19TVVJfU0VRIiwgIkRYX09USEVSX1NUQVJURURfREFZUyIsICJSWF9TVU1NX09USEVSIiwKICAgICAgICAgICAgICAgICAgICJQQUxMSUFUSVZFX0NBUkUiLCAiUlhfU1VNTV9UUkVBVE1FTlRfU1RBVFVTIiwgIlBVRl8zMF9EQVlfTU9SVF9DRCIsICJQVUZfOTBfREFZX01PUlRfQ0QiLAogICAgICAgICAgICAgICAgICAgIkRYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUyIsICJQVUZfVklUQUxfU1RBVFVTIiwgIlJYX0hPU1BfU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9DSEVNTyIsCiAgICAgICAgICAgICAgICAgICAiUlhfSE9TUF9JTU1VTk9USEVSQVBZIiwgIlJYX0hPU1BfSE9STU9ORSIsICJSWF9IT1NQX09USEVSIiwgIlBVRl9NVUxUX1NPVVJDRSIsICJSRUZFUkVOQ0VfREFURV9GTEFHIiwKICAgICAgICAgICAgICAgICAgICJSWF9TVU1NX1NDT1BFX1JFR19MTl8yMDEyIiwgIlJYX0hPU1BfRFhTVEdfUFJPQyIsICJQQUxMSUFUSVZFX0NBUkVfSE9TUCIsICJUVU1PUl9TSVpFX1NVTU1BUlkiLAogICAgICAgICAgICAgICAgICAgIk1FVFNfQVRfRFhfT1RIRVIiLCAiTUVUU19BVF9EWF9ESVNUQU5UX0xOIiwgIk1FVFNfQVRfRFhfQk9ORSIsICJNRVRTX0FUX0RYX0JSQUlOIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX0xJVkVSIiwgIk1FVFNfQVRfRFhfTFVORyIsICJOT19IU0RfUVVBUl8xNiIsICJNRURfSU5DX1FVQVJfMTYiLCAiTUVESUNBSURfRVhQTl9DT0RFIikKCgoKI1JlYWQgaW4gZGF0YSBmb3IgZWFjaCBzdWJzaXRlCmxpcCA8LSByZWFkX2Z3ZignTkNEQlBVRl9MaXAuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKbWVsYW5vbWEgPC0gcmVhZF9md2YoJ05DREJQVUZfTWVsYW5vbWEuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQogICAgICAgICAgICAgICAgICAgICAgIApza2luIDwtIHJlYWRfZndmKCdOQ0RCUFVGX090U2tpbi4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpob2RnZXh0ciA8LSByZWFkX2Z3ZignTkNEQlBVRl9Ib2RnRXh0ci4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpob2RnbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9Ib2RnTmRhbC4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpOSExuZGFsIDwtIHJlYWRfZndmKCdOQ0RCUFVGX05ITE5kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMZXh0ciA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExFeHRyLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCgpicmVhc3QgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX0JyZWFzdC4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgp2dWx2YSA8LSAgcmVhZF9md2YoJ05DREJQVUZfVnVsdmEuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKdmFnaW5hIDwtICByZWFkX2Z3ZignTkNEQlBVRl9WYWdpbmEuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKcGVuaXMgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1BlbmlzLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm90bGV1ayA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdExldWsuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQogIApvdGhlcmFjdXRlbGV1ayAgPC0gcmVhZF9md2YoJ05DREJQVUZfT3RBY0xldWsuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQogIApBTEwgIDwtIHJlYWRfZndmKCdOQ0RCUFVGX0FMeW1MZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCgojQ29tYmluZSBkYXRhIGZvciBhbGwgc3Vic2l0ZXMKZGF0IDwtIGJpbmRfcm93cyhsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgCiAgICAgICAgICAgICAgICAgdnVsdmEsIHZhZ2luYSwgcGVuaXMsIE5ITGV4dHIsIG90bGV1aywgb3RoZXJhY3V0ZWxldWssIEFMTCkKCnJtKGxpcCwgbWVsYW5vbWEsIHNraW4sIGhvZGdleHRyLCBob2RnbmRhbCwgTkhMbmRhbCwgYnJlYXN0LCB2dWx2YSwgdmFnaW5hLCAKICAgcGVuaXMsIE5ITGV4dHIsIG90bGV1aywgb3RoZXJhY3V0ZWxldWssIEFMTCkKCnByaW1fc2l0ZV90ZXh0IDwtIGRhdGFfZnJhbWUoUFJJTUFSWV9TSVRFID0gYygKI05ITCBzaXRlcwoiQzAwMCIsIAoiQzAwMSIsIAoiQzAwMiIsIAoiQzAwMyIsIAoiQzAwNCIsIAoiQzAwNSIsIAoiQzAwNiIsIAoiQzAwOCIsCiJDMDA5IiwgCiJDMDE5IiwgCiJDMDIwIiwgCiJDMDIxIiwKIkMwMjIiLCAKIkMwMjMiLCAKIkMwMjQiLCAKIkMwMjgiLCAKIkMwMjkiLAoiQzAzMCIsCiJDMDMxIiwKIkMwMzkiLCAKIkMwNDAiLCAKIkMwNDEiLCAKIkMwNDgiLAoiQzA0OSIsIAoiQzA1MCIsIAoiQzA1MSIsIAoiQzA1MiIsIAoiQzA1OCIsIAoiQzA1OSIsCiJDMDYwIiwgCiJDMDYxIiwgCiJDMDYyIiwgCiJDMDY4IiwgCiJDMDY5IiwgCiJDMDc5IiwgIAoiQzA5OCIsCiJDMDk5IiwKIkMxMTEiLAoiQzE0MiIsCiJDMzAwIiwKIkMzNzkiLAoiQzQyMCIsCiJDNDIyIiwKIkM0MjQiLAoKI3NraW4vbWVsYW5vbWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM0NDAiLCAiQzQ0MSIsICJDNDQyIiwgIkM0NDMiLCAiQzQ0NCIsICJDNDQ1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM0NDYiLCAiQzQ0NyIsICJDNDQ4IiwgIkM0NDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFzdCAtIG5pcHBsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQzUwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdmFnaW5hL3Z1bHZhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNTEwIiwgIkM1MTEiLCAiQzUxMiIsICJDNTE4IiwgIkM1MTkiLCAiQzUyOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcGVuaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM2MDAiLCAiQzYwMSIsICJDNjAyIiwgIkM2MDgiLCAiQzYwOSIsICJDNjM5IiwKCiJDNzcwIiwKIkM3NzEiLAoiQzc3MiIsCiJDNzczIiwKIkM3NzQiLAoiQzc3NSIsCiJDNzc4IiwKIkM3NzkiKSwKClNJVEVfVEVYVCA9IGMoCiJDMDAuMCBFeHRlcm5hbCBMaXA6IFVwcGVyIE5PUyIsCiJDMDAuMSBFeHRlcm5hbCBMaXA6IExvd2VyIE5PUyIsCiJDMDAuMiBFeHRlcm5hbCBMaXA6IE5PUyIsCiJDMDAuMyBMaXA6IFVwcGVyIE11Y29zYSIsCiJDMDAuNCBMaXA6IExvd2VyIE11Y29zYSIsCiJDMDAuNSBMaXA6IE11Y29zYSBOT1MiLAoiQzAwLjYgTGlwOiBDb21taXNzdXJlIiwKIkMwMC44IExpcDogT3ZlcmxhcHBpbmciLAoiQzAwLjkgTGlwIE5PUyIsCiJDMDEuOSBUb25ndWU6IEJhc2UgTk9TIiwKIkMwMi4wIFRvbmd1ZTogRG9yc2FsIE5PUyIsCiJDMDIuMSBUb25ndWU6IEJvcmRlciwgVGlwIiwKIkMwMi4yIFRvbmd1ZTogVmVudHJhbCBOT1MiLAoiQzAyLjMgVG9uZ3VlOiBBbnRlcmlvciBOT1MiLAoiQzAyLjQgTGluZ3VhbCBUb25zaWwiLAoiQzAyLjggVG9uZ3VlOiBPdmVybGFwcGluZyIsCiJDMDIuOSBUb25ndWU6IE5PUyIsCiJDMDMuMCBHdW06IFVwcGVyIiwKIkMwMy4xIEd1bTogTG93ZXIiLAoiQzAzLjkgR3VtIE5PUyIsCiJDMDQuMCBNb3V0aDogQW50ZXJpb3IgRmxvb3IiLAoiQzA0LjEgTW91dGg6IExhdGVyYWwgRmxvb3IiLAoiQzA0LjggTW91dGg6IE92ZXJsYXBwaW5nIEZsb29yIiwKIkMwNC45IEZsb29yIG9mIE1vdXRoIE5PUyIsCiJDMDUuMCBIYXJkIFBhbGF0ZSIsCiJDMDUuMSBTb2Z0IFBhbGF0ZSBOT1MiLAoiQzA1LjIgVXZ1bGEiLAoiQzA1LjggUGFsYXRlOiBPdmVybGFwcGluZyIsCiJDMDUuOSBQYWxhdGUgTk9TIiwKIkMwNi4wIENoZWVrIE11Y29zYSIsCiJDMDYuMSBNb3V0aDogVmVzdGlidWxlIiwKIkMwNi4yIFJldHJvbW9sYXIgQXJlYSIsCiJDMDYuOCBNb3V0aDogT3RoZXIgT3ZlcmxhcHBpbmciLAoiQzA2LjkgTW91dGggTk9TIiwKIkMwNy45IFBhcm90aWQgR2xhbmQiLAogICJDMDkuOCBUb25zaWw6IE92ZXJsYXBwaW5nIiwKICAiQzA5LjkgVG9uc2lsIE5PUyIsCiAgIkMxMS4xIE5hc29waGFyeW54OiBQb3N0ZXIgV2FsbCIsIAogICJDMTQuMiBXYWxkZXllciBSaW5nIiwKICAiQzMwLjAgTmFzYWwgQ2F2aXR5IiwKICAiQzM3LjkgVGh5bXVzIiwKIkM0Mi4wIEJsb29kIiwKICAiQzQyLjIgU3BsZWVuIiwKIkM0Mi40IEhlbWF0b3BvaWV0aWMgTk9TIiwKCiAjc2tpbgoiQzQ0LjAgU2tpbiBvZiBsaXAsIE5PUyIsCiJDNDQuMSBFeWVsaWQiLAoiQzQ0LjIgRXh0ZXJuYWwgZWFyIiwKIkM0NC4zIFNraW4gb2YgZWFyIGFuZCB1bnNwZWNpZmllZCBwYXJ0cyBvZiBmYWNlIiwKIkM0NC40IFNraW4gb2Ygc2NhbHAgYW5kIG5lY2siLAoiQzQ0LjUgU2tpbiBvZiB0cnVuayIsCiJDNDQuNiBTa2luIG9mIHVwcGVyIGxpbWIgYW5kIHNob3VsZGVyIiwKIkM0NC43IFNraW4gb2YgbG93ZXIgbGltYiBhbmQgaGlwIiwKIkM0NC44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiBza2luIiwKIkM0NC45IFNraW4sIE5PUyIsIAoKI2JyZWFzdAoiQzUwLjAgTmlwcGxlIiwKCiN2dWx2YS92YWdpbmEKIkM1MS4wIExhYml1bSBtYWp1cyIsCiJDNTEuMSBMYWJpdW0gbWludXMiLAoiQzUxLjIgQ2xpdG9yaXMiLAoiQzUxLjggT3ZlcmxhcHBpbmcgbGVzaW9uIG9mIHZ1bHZhIiwKIkM1MS45IFZ1bHZhLCBOT1MiLAoiQzUyLjkgVmFnaW5hLCBOT1MiLAoKI3BlbmlzCiJDNjAuMCBQcmVwdWNlIiwKIkM2MC4xIEdsYW5zIHBlbmlzIiwKIkM2MC4yIEJvZHkgb2YgcGVuaXMiLAoiQzYwLjggT3ZlcmxhcHBpbmcgbGVzaW9uIG9mIHBlbmlzIiwKIkM2MC45IFBlbmlzIiwKIkM2My4yIFNjcm90dW0sIE5PUyIsCgogICJDNzcuMCBMeW1waCBOb2RlczogSGVhZEZhY2VOZWNrIiwKICAiQzc3LjEgSW50cmF0aG9yYWNpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny4yIEludHJhLWFiZG9taW5hbCBMeW1waE5vZGVzIiwKICAiQzc3LjMgTHltcGggTm9kZXMgb2YgYXhpbGxhIG9yIGFybSAiLAogICJDNzcuNCBMeW1waCBOb2RlczogTGVnIiwKICAiQzc3LjUgUGVsdmljIEx5bXBoIE5vZGVzIiwKICAiQzc3LjggTHltcGggTm9kZXM6IG11bHRpcGxlIHJlZ2lvbiIsCiAgIkM3Ny45IEx5bXBoIE5vZGUgTk9TIikpCgoKZGF0IDwtIG1lcmdlKGRhdCwgcHJpbV9zaXRlX3RleHQsIGJ5ID0gIlBSSU1BUllfU0lURSIsIGFsbC54ID0gVFJVRSkgCgpybShwcmltX3NpdGVfdGV4dCkKCiMgY29udmVydCBudW1lcmljIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBudW1lcmljIGNsYXNzCm51bV92YXJzIDwtIGMoIkFHRSIsICJDUk9XRkxZIiwgIlRVTU9SX1NJWkUiLCAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsICJEWF9SQURfU1RBUlRFRF9EQVlTIiwgICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLAogICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX0VMQVBTRURfUlhfREFZUyIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgCiAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIkRYX09USEVSX1NUQVJURURfREFZUyIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLAogICAgICAgICAgICAgICJSQURfTlVNX1RSRUFUX1ZPTCIpCgpkYXRbbnVtX3ZhcnNdIDwtIGxhcHBseShkYXRbbnVtX3ZhcnNdLCBhcy5udW1lcmljKQoKCiMgY29udmVydCBmYWN0b3IgdmFyaWFibGVzIGZyb20gY2hhcmFjdGVyIGNsYXNzIHRvIGZhY3RvciBjbGFzcwp2YXJzIDwtIG5hbWVzKGRhdCkKZmFjdF92YXJzIDwtIHZhcnNbISh2YXJzICVpbiUgbnVtX3ZhcnMpXSAjIGJhc2ljYWxseSBhbGwgb2YgdGhlIG5vbi1udW1lcmljcwoKZGF0W2ZhY3RfdmFyc10gPC0gbGFwcGx5KGRhdFtmYWN0X3ZhcnNdLCBhcy5jaGFyYWN0ZXIpCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuZmFjdG9yKQoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfVFlQRV9GID0gZmN0X3JlY29kZShGQUNJTElUWV9UWVBFX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tdW5pdHkgQ2FuY2VyIFByb2dyYW0iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21wcmVoZW5zaXZlIENvbW0gQ2EgUHJvZ3JhbSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjYWRlbWljL1Jlc2VhcmNoIFByb2dyYW0iID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlZ3JhdGVkIE5ldHdvcmsgQ2EgUHJvZ3JhbSIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShGQUNJTElUWV9MT0NBVElPTl9GID0gZmN0X3JlY29kZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IEVuZ2xhbmQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWRkbGUgQXRsYW50aWMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCBBdGxhbnRpYyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgTm9ydGggQ2VudHJhbCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgU291dGggQ2VudHJhbCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgTm9ydGggQ2VudHJhbCIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgU291dGggQ2VudHJhbCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vdW50YWluIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyIgPSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dCBvZiBVUyIgPSAiMCIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfR0VPR1JBUEhZID0gZmN0X2NvbGxhcHNlKEZBQ0lMSVRZX0xPQ0FUSU9OX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vcnRoZWFzdCIgPSBjKCIxIiwgIjIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCIgPSBjKCIzIiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWR3ZXN0IiA9IGMoIjQiLCAiNSIsICI2IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2VzdCIgPSBjKCI4IiwgIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfRiA9IGN1dChBR0UsIGMoMCwgNTQsIDY0LCA3NCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfNDAgPSBjdXQoQUdFLCBjKDAsIDQwLCAxMDApKSkgJT4lCiAgICAgICAgbXV0YXRlKFNFWF9GID0gZmN0X3JlY29kZShTRVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hbGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGZW1hbGUiID0gIjIiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBQ0VfRiA9IGZjdF9jb2xsYXBzZShSQUNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXaGl0ZSIgPSBjKCIwMSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCbGFjayIgPSBjKCIwMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc2lhbiIgPSBjKCIwNCIsICIwNSIsICIwNiIsICIwNyIsICIwOCIsICIxMCIsICIxMSIsICIxMiIsICIxMyIsICIxNCIsICIxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE2IiwgIjE3IiwgIjIwIiwgIjIxIiwgIjIyIiwgIjI1IiwgIjI2IiwgIjI3IiwgIjI4IiwgIjMwIiwgIjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMzIiLCAiOTYiLCAiOTciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIvVW5rIiA9IGMoIjAzIiwgIjk4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSElTUEFOSUMgPSBmY3RfY29sbGFwc2UoU1BBTklTSF9ISVNQQU5JQ19PUklHSU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9IGMoIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWNvZGUoSU5TVVJBTkNFX1NUQVRVUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1lZGljYXJlIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgR292ZXJubWVudCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOU1VSQU5DRV9GID0gZmN0X3JlbGV2ZWwoSU5TVVJBTkNFX0YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOQ09NRV9GID0gZmN0X3JlY29kZShNRURfSU5DX1FVQVJfMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiAkMzgsMDAwIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDM4LDAwMCAtICQ0Nyw5OTkiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNDgsMDAwIC0gJDYyLDk5OSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQ2MywwMDAgKyIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoRURVQ0FUSU9OX0YgPSBmY3RfcmVjb2RlKE5PX0hTRF9RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIxJSBvciBtb3JlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMyAtIDIwLjklIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI3IC0gMTIuOSUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiA3JSIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoVV9SX0YgPSBmY3RfY29sbGFwc2UoVVJfQ0RfMTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZXRybyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXJiYW4iID0gYygiNCIsICI1IiwgIjYiLCAiNyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVyYWwiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQ0xBU1NfT0ZfQ0FTRV9GID0gZmN0X2NvbGxhcHNlKENMQVNTX09GX0NBU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxfUGFydF9QcmltID0gYygiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE0IiwgIjIwIiwgIjIxIiwgIjIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlcl9GYWNpbGl0eSA9IGMoIjAwIikpKSAlPiUKICAgICAgICBtdXRhdGUoR1JBREVfRiA9IGZjdF9yZWNvZGUoR1JBREUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSTogV2VsbCBEaWZmIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSTogTW9kIERpZmYiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIElJSTogUG9vciBEaWZmIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJVjogVW5kaWZmL0FuYXBsYXN0aWMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5BL1Vua293biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmY3RfaW5mcmVxKEhJU1RPTE9HWSkpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRiA9IGZhY3RvcihISVNUT0xPR1lfRikpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRl9MSU0gPSBmY3RfbHVtcChISVNUT0xPR1lfRiwgcHJvcCA9IDAuMDUpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fVCA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVsZXZlbChUTk1fQ0xJTl9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX04gPSBmY3RfcmVjb2RlKFROTV9DTElOX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9NID0gZmN0X3JlY29kZShUTk1fQ0xJTl9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfVCA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVsZXZlbChUTk1fUEFUSF9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX04gPSBmY3RfcmVjb2RlKFROTV9QQVRIX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9NID0gZmN0X3JlY29kZShUTk1fUEFUSF9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9DTElOX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOUyA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmVzaWR1YWwiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzaWR1YWwsIE5PUyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWNyb3Njb3BpYyBSZXNpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWNyb3Njb3BpYyBSZXNpZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3QgZXZhbHVhYmxlIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmciID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOU19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcvVW5rL05BIiA9IGMoIjciLCAiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBRE1fSE9TUF8zMF9EQVlTX0YgPSBmY3RfcmVjb2RlKFJFQURNX0hPU1BfMzBfREFZUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnX29yX05vX1JlYWRtaXQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucGxhbl9SZWFkbWl0X1NhbWUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYW5fUmVhZG1pdF9TYW1lIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuVW5wbGFuX1NhbWUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX1NVTU1fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtIFJhZGlhdGlvbiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2FjdGl2ZSBJbXBsYW50cyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2lzb3RvcGVzIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJlYW0gKyBJbXAgb3IgSXNvdG9wZXMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaWF0aW9uLCBOT1MiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzMwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl8zMF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV8zMCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF8zMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzkwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl85MF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV85MCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF85MCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiA9IGZjdF9yZWNvZGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWdfTHltcGhWYXNjX0ludiIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQb3NfTHVtcGhWYXNjX0ludiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GID0gZmN0X3JlY29kZShSWF9IT1NQX1NVUkdfQVBQUl8yMDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfQXNzaXN0IiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfdG9fT3BlbiIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5kb19MYXBfdG9fT3BlbiIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW5fVW5rbm93biIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9ICJBbGwiKSAlPiUKICAgICAgICBtdXRhdGUoQWxsID0gZmFjdG9yKEFsbCkpICU+JQogICAgICAgIG11dGF0ZShSRUFTT05fRk9SX05PX1NVUkdFUllfRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcGVyZm9ybWVkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZyBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZywgcHQgZGllZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHVuayBpZiBkb25lIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShTVVJHRVJZX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVa24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1RGID0gY2FzZV93aGVuKFNVUkdFUllfWU4gPT0gIlllcyIgfiBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUkdFUllfWU4gPT0gIk5vIiB+IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBOQSkpICAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT05fRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkIGR1ZSB0byBwdCBmYWN0b3JzIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBSYWQsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBwdCByZWZ1c2VkIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUkFESUFUSU9OX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkVBU09OX0ZPUl9OT19SQURJQVRJT04gPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR1JBRF9TRVFfRiA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHUkFEX1NFUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgb3IgU3VyZyBvciBSYWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBTdXJnIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgYmVmb3JlIFJhZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIHBsdXMgb3RoZXIiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVEgPSBmY3RfcmVsZXZlbChTVVJHX1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIikpICU+JQogICAgICAgIG11dGF0ZShDSEVNT19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX0NIRU1PLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMDAiLCAiODIiLCAiODUiLCAiODYiLCAiODciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIwMSIsICIwMiIsICIwMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiA9IGMoIjg4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU1NVU5PX1lOID0gZmN0X2NvbGxhcHNlKFJYX1NVTU1fSU1NVU5PVEhFUkFQWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiAmIAogICAgICAgICAgICAgICAgICAgICAgICAgIElNTVVOT19ZTiA9PSAiTm8iLCBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShDSEVNT19ZTiA9PSAiVWtuIiwgTkEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSkpKQoKZmFjdF92YXJzXzIgPC0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiQUdFX0YiLCAiU0VYX0YiLCAiUkFDRV9GIiwKICAgICAgICAgICAgICAgICAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLAogICAgICAgICAgICAgICAgICJDRENDX1RPVEFMX0JFU1QiLCAiQ0xBU1NfT0ZfQ0FTRV9GIiwgIllFQVJfT0ZfRElBR05PU0lTIiwgIlBSSU1BUllfU0lURSIsICJISVNUT0xPR1kiLAogICAgICAgICAgICAgICAgICJCRUhBVklPUiIsICJHUkFERV9GIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLCAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLAogICAgICAgICAgICAgICAgICJNQVJHSU5TIiwgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsICJtZXRzX2F0X2R4IikKCgpkYXQgPC0gZGF0ICU+JQogICAgICAgIG11dGF0ZV9hdChmYWN0X3ZhcnNfMiwgZnVucyhmYWN0b3IoLikpKQoKYGBgCgoKIyBFeHRyYWN0IERhdGEgb2YgSW50ZXJlc3QKCmBgYHtyfQoKCiMgTm9uLUhvZGdraW4gTHltcGhvbWEgU2l0ZXMKc2l0ZV9jb2RlIDwtIGMoIAojYWRkaXRpb25hbCBzaXRlcwoKICNsaXAgIAogICJDMDAwIiwgIkMwMDEiLCAiQzAwMiIsICJDMDAzIiwgIkMwMDQiLCAiQzAwNSIsIkMwMDYiLCAiQzAwOCIsIkMwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojc2tpbi9tZWxhbm9tYQogICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjYnJlYXN0IC0gbmlwcGxlCiAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3ZhZ2luYS92dWx2YQogICJDNTEwIiwgIkM1MTEiLCAiQzUxMiIsICJDNTE4IiwgIkM1MTkiLCAiQzUyOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojcGVuaXMKICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIpCgojbXljb3NpcyBmdW5nb2lkZXMsIFNlemFyeSBzeW5kcm9tZSwgc3ViY3V0YW5lb3VzIHBhbm5pY3VsaXRpcy1saWtlIFQtY2VsbCBseW1waG9tYSwKI2N1dGFuZW91cyBULWNlbGwgbHltcGhvbWEsIE5PUywgcHJpbWFyeSBjdXRhbmVvdXMgQ0QzMCtULWNlbGwgbHltcGhvbWEsIAojTksvVC1jZWxsIGx5bXBob21hLCBwcmltYXJ5IGN1dGFuZW91cyBnYW1tYS1kZWx0YSBULWNlbGwgbHltcGhvbWEsIAojYW5kIGJsYXN0aWMgTksgY2VsbCBseW1waG9tYSwgcmVzcGVjdGl2ZWx5CgojIjk3MDAiID0gTXljb3NpcyBGdW5nb2lkZXMKICAjIHBhZ2V0b2lkIHJldGljdWxvc2lzCgojIjk3MDEiID0gU2V6YXJ5IFN5bmRyb21lCiAgIyBTZXphcnkgZGlzZWFzZQoKIyI5NzA4IiA9IFN1YmN1dGFuZW91cyBwYW5uaWN1bGl0aXNsaWtlIFQtY2VsbCBseW1waG9tYQoKIyI5NzA5IiA9IEN1dGFuZW91cyBULWNlbGwgbHltcGhvbWEsIE5PUyAKICAjIEN1dGFuZW91cyBseW1waG9tYSwgTk9TIChDNDQuXyk7IFByaW1hcnkgY3V0YW5lb3VzIENENC1wb3NpdGl2ZSBzbWFsbC9tZWRpdW0KICAjIFQtY2VsbCBseW1waG9tYTsgUHJpbWFyeSBjdXRhbmVvdXMgQ0Q4LXBvc2l0aXZlIGFnZ3Jlc3NpdmUKICAjIGVwaWRlcm1vdHJvcGljIGN5dG90b3hpYyBULWNlbGwgbHltcGhvbWEKCiMiOTcxOCIgPSBQcmltYXJ5IGN1dGFuZW91cyBDRDMwKyBULWNlbGwgbHltcGhvcHJvbGlmZXJhdGl2ZSBkaXNvcmRlciAKICAjIEx5bXBob21hdG9pZCBwYXB1bG9zaXMgKEM0NC5fKSwgUHJpbWFyeSBjdXRhbmVvdXMgYW5hcGxhc3RpYyBsYXJnZSBjZWxsLAogICMgbHltcGhvbWEgKEM0NC5fKSwgUHJpbWFyeSBjdXRhbmVvdXMgQ0QzMCsgbGFyZ2UgVC1jZWxsIGx5bXBob21hIChDNDQuXykKCgojIjk3MjYiID0gUHJpbWFyeSBjdXRhbmVvdXMgZ2FtbWEtZGVsdGEgVC1jZWxsIGx5bXBob21hCgpoaXN0b19jb2RlIDwtIGMoIjk3MDAiKQoKYmVoYXZpb3JfY29kZSA8LSBjKCIzIikKCmRhdGEgPC0gZGF0ICU+JQogICAgICAgIGZpbHRlcihCRUhBVklPUiAlaW4lIGJlaGF2aW9yX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihQUklNQVJZX1NJVEUgJWluJSBzaXRlX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihISVNUT0xPR1kgJWluJSBoaXN0b19jb2RlKSAlPiUKICAgICAgICAjZmlsdGVyKEFHRSA+PSAxOCkgJT4lCiAgICAgICAgZmlsdGVyKGlzLm5hKFBVRl9WSVRBTF9TVEFUVVMpID09IEZBTFNFKSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTKSA9PSBGQUxTRSkgICU+JQogICAgICAgIGZpbHRlcihTRVFVRU5DRV9OVU1CRVIgPT0gIjAwIikgCgojZmlsZV9wYXRoIDwtIGMoIi9Vc2Vycy9iZWFzdGF0bGlmZS9Hb29nbGUgRHJpdmUvUGVubi9SZXNlYXJjaC9CYXJiaWVyaS9OQ0RCIikKI3NhdmUoZGF0YSwKIyAgICAgIGZpbGUgPSBwYXN0ZTAoZmlsZV9wYXRoLCAiL0NUQ0xfZGF0YS5SZGEiKSkKYGBgCgpgYGB7ciBsb2FkRGF0YX0KI2xvYWQoIk1GX2RhdGEuUmRhIikKYGBgCgoKRGF0YSBpbmNsdWRpbmcgc2tpbiB0dW1vcnMgd2FzIG9idGFpbmVkIGZyb20gdGhlIE5DQkQgb24gT2N0b2JlciA3LCAyMDE5LiBDYXNlcyB0aGF0IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBhbmFseXNpcyB3ZXJlIHRob3NlIHdpdGg6CgoxLiBTaXRlIGNvZGVzOiBgciBzaXRlX2NvZGVgCjIuIEhpc3RvbG9neSBjb2RlczogYHIgaGlzdG9fY29kZWAKMy4gQmVoYXZpb3IgY29kZXM6IGByIGJlaGF2aW9yX2NvZGVgCgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGRpZG4ndCBoYXZlIHZhbHVlcyBmb3IgZWl0aGVyIGZvbGxvdyB1cCBvciB2aXRhbCBzdGF0dXMuCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgaGFkIHN1cmdlcnkgdG8gYSBkaXN0YW50IHNpdGUgdXNpbmcgYFJYX1NVTU1fU1VSR19PVEhfUkVHRElTYC4gVGhpcyB3YXMgZG9uZSB0byBhdm9pZCBjb25mb3VuZGluZyBvZiBkaWZmZXJlbnQgc3VyZ2ljYWwgcHJvY2VkdXJlcy4gV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBzdXJnZXJ5IGF0IHRoZSBwcmltYXJ5IHNpdGUuIFRoZXNlIGRpc3RhbnQgc2l0ZSBzdXJnZXJpZXMgd2VyZSBiZWluZyBjb3VudGVkIGluIHRoZSBzdXJnZXJ5L3JhZGlhdGlvbiBzZXF1ZW5jZSBhbmQgdGh1cyB0byBzaW1wbGlmeSBhbmFseXNpcyB0aGV5IHdlcmUgcmVtb3ZlZC4gCgpgYGB7cn0KCmRhdGEgJT4lCiAgICAgICAgQ3JlYXRlVGFibGVPbmUoZGF0YSA9IC4sCiAgICAgICAgICAgICAgICAgICAgIHZhcnMgPSBjKCJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIpLAogICAgICAgICAgICAgICAgICAgICBpbmNsdWRlTkEgPSBUUlVFKSAlPiUKICAgICAgICBwcmludCguLAogICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFKQoKZGF0YSA8LSBkYXRhICU+JQogICAgICAgIGZpbHRlcihSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyA9PSAiMCIpIApgYGAKCgpSYWNlIHdhcyBncm91cGVkIGFzIHdoaXRlLCBibGFjaywgYXNpYW4sIG90aGVyL3Vua25vd24KU3RhZ2Ugd2FzIGdyb3VwZWQgaW50byAwLCBJLCBJSSwgSUlJLCBJViwgTkFfVW5rbm93biwgc3RhZ2UgMCB3YXMgcmVtb3ZlZApXaGV0aGVyIHN1cmdlcnkgd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1NVUkdFUllgIHZhcmlhYmxlLiBUaGUgYFNVUkdFUllfWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKV2hldGhlciByYWRpYXRpb24gd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1JBRElBVElPTmAgdmFyaWFibGUuIFRoZSBgUkFESUFUSU9OX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCgojVGFibGUgb2YgdmFyaWFibGVzIGZvciBhbGwgY2FzZXM6CgpgYGB7cn0KZGF0YSA8LSBkYXRhICU+JSBkcm9wbGV2ZWxzKCkKCnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREVfRiIsIAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIklNTVVOT19ZTiIsICJUeF9ZTiIsICJtZXRzX2F0X2R4IiwKICAgICAgICAgICAgICAgICAiTUVESUNBSURfRVhQTl9DT0RFIiwgIkVYUE5fR1JPVVAiLCAiWUVBUl9PRl9ESUFHTk9TSVMiKSkKYGBgCgoKCiNLYXBsYW4gTWVpZXIgQW5hbHlzaXMKCgojI0FsbAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQWxsIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgVHlwZQpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9UWVBFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBMb2NhdGlvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfTE9DQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IEdlb2dyYXBoeQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJBR0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cApgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJBR0VfNDAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNHZW5kZXIKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNFWF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUkFDRV9GCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSQUNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNIaXNwYW5pYwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSElTUEFOSUMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNJbnN1cmFuY2UgU3RhdHVzCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTlNVUkFOQ0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKCiMjSW5jb21lCgpgYGB7cn0KY2xhc3MoZGF0YSRJTkNPTUVfRikKdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0VkdWNhdGlvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRURVQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNVcmJhbi9SdXJhbAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVV9SX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGFzcyAodHJlYXRtZW50IGF0IHBlcmZvcm1pbmcgZmFjaWxpdHkpCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJDTEFTU19PRl9DQVNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNZZWFyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJZRUFSX09GX0RJQUdOT1NJUyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1ByaW1hcnkgU2l0ZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU0lURV9URVhUIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI0hpc3RvbG9neQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1RPTE9HWV9GX0xJTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0JlaGF2aW9yCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0dyYWRlCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiR1JBREVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIFQgU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBOIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9OIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgTSBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgVCBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgTiBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgTSBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucyBZZXMvTm8KYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlNfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyMzMCBEYXkgUmVhZG1pc3Npb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJFQURNX0hPU1BfMzBfREFZU19GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUmFkaWF0aW9uIFR5cGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX1NVTU1fUkFESUFUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjTHltcGhvdmFzY3VsYXIgSW52YXNpb24KCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRW5kb3Njb3BpYy9Sb2JvdGljCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNTdXJnZXJ5IFJhZGlhdGlvbiBTZXF1ZW5jZSAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNVUkdfUkFEX1NFUSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1N1cmdlcnkgWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTVVJHRVJZX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUmFkaWF0aW9uIFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFESUFUSU9OX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2hlbW8gWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJDSEVNT19ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNUcmVhdG1lbnQgWWVzL05vCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlR4X1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWV0YXN0YXNlcyBhdCBEeApgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJtZXRzX2F0X2R4X0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNUdW1vciBTaXplCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUX1NJWkUiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKI1R1bW9yIHNwZWNpZmljIFZhcmlhYmxlcwoKCiMjI05vZGUgU2l6ZQoKCiNDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBSYXRpbwoKIyNNb2RlbCAjMQoKIyMjRnVsbCBhbmFseXNpcwoKYGBge3J9Cm1vZGVsX29uZSA8LSBjb3hwaChTdXJ2KERYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUywgUFVGX1ZJVEFMX1NUQVRVUyA9PSAwKQogICAgICAgICAgICAgICAgICAgICB+IFNVUkdfUkFEX1NFUSArIElOU1VSQU5DRV9GICsgQUdFICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiwKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEpCm1vZGVsX29uZSAlPiUgc3VtbWFyeSgpCgoKYGBgCgojIyNTdW1tYXJ5IG9mIE1vZGVsCgpgYGB7cn0KbW9kZWxfb25lICU+JQogICAgICAgIHRpZHkoLiwgZXhwb25lbnRpYXRlID0gVFJVRSkgJT4lCiAgICAgICAgc2VsZWN0KHRlcm0sIGVzdGltYXRlLCBjb25mLmxvdywgY29uZi5oaWdoLCBwLnZhbHVlKSAlPiUKICAgICAgICByZW5hbWUoVmFyaWFibGUgPSB0ZXJtLAogICAgICAgICAgICAgICBIYXphcmRfUmF0aW8gPSBlc3RpbWF0ZSkgJT4lCiAgICAgICAgdGJsX2RmICU+JQogICAgICAgIHByaW50KG4gPSBucm93KC4pKQoKYGBgCgojIyBMaW5lYXIgUmVncmVzc2lvbiAKYGBge3J9Cgojb25seSBpbmNsdWRlIHJvd3Mgd2l0aCBrbm93biB0cmVhdG1lbnQgaW5mb3JtYXRpb24sIG4gPSA4MgpkYXRhMiA8LSBkYXRhICU+JSBmaWx0ZXIoU1VSR0VSWV9ZTiAhPSAiVWtuIiAmIFJBRElBVElPTl9ZTiAhPSAiVWtuIgogICAgICAgICAgICAgICAgICAgICAgICAgJiBDSEVNT19ZTiAhPSAiVWtuIikKCiMgaW5jbHVkZSBvbmx5IHZhcmlhYmxlcyB3aXRoIGRhdGEgYXZhaWxhYmxlIGZvciBhdCBsZWFzdCA3NSUgb2YgY2FzZXMgCiMgZnJvbSB0aGUgZm9sbG93aW5nIHNldCBvZiB2YXJpYWJsZXMgb2YgaW50ZXJlc3Q6CgojIyBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9HRU9HUkFQSFkgKyBDUk9XRkxZICsgCiMjICAgICAgICAgICAgICAgICBEWF9TVEFHSU5HX1BST0NfREFZUyArIAojIyAgICAgICAgICAgICAgICAgQ0hFTU9fWU4gKyBSQURJQVRJT05fWU4gKyBTVVJHRVJZX1lOICsgSU1NVU5PX1lOICsKIyMgICAgICAgICAgICAgICAgIEFHRSArIFNFWF9GICsgUkFDRV9GICsgSElTUEFOSUMgKyBJTlNVUkFOQ0VfRiArIElOQ09NRV9GICsgCiMjICAgICAgICAgICAgICAgICBFRFVDQVRJT05fRiArIFlFQVJfT0ZfRElBR05PU0lTICsgU0lURV9URVhUICsgR1JBREVfRgoKbGVuZ3RoKHdoaWNoKGlzLm5hKGRhdGEyJFNJVEVfVEVYVCkpKSAvIG5yb3coZGF0YTIpCgojIGV4Y2x1ZGVkIHRoZSBmb2xsb3dpbmcgaW4gdGhpcyBhbmFseXNpcyBkdWUgdG8gbWlzc2luZyBkYXRhOiAKIyAgbm9uZQoKZml0X3N1cnYgPC0gbG0oRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIH4KICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgQ1JPV0ZMWSArIAogICAgICAgICAgICAgICAgIERYX1NUQUdJTkdfUFJPQ19EQVlTICsgCiAgICAgICAgICAgICAgICAgQ0hFTU9fWU4gKyBSQURJQVRJT05fWU4gKyBTVVJHRVJZX1lOICsKICAgICAgICAgICAgICAgICBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5TVVJBTkNFX0YgKyAKICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyArIFNJVEVfVEVYVCArIEdSQURFX0YsCiAgIGRhdGEgPSBkYXRhMikKCnN1bW1hcnkoZml0X3N1cnYpICMgUl4yID0wLjM2MDIsIHAgPCAyLjJlLTE2IAoKIyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyB3ZXJlIGV4Y2x1ZGVkIHRvIAojIGltcHJvdmUgdGhlIFItc3F1YXJlZCBvZiB0aGUgcmVncmVzc2lvbjoKIyBFRFVDQVRJT05fRiwgSU5DT01FX0YsIElNTVVOT19ZTiwgU1VSR0VSWV9ZTiwgSElTUEFOSUMsCmBgYAoKIyBQcmVkaWN0aW9uIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzCgojIyBTdXJnZXJ5CmBgYHtyfQoKbm9fVWtucyA8LSBkYXRhICU+JQogIGZpbHRlcihTVVJHRVJZX1lOICE9ICJVa24iKSAlPiUgCiAgZHJvcGxldmVscygpICU+JSAKICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGFzLmxvZ2ljYWwoU1VSR0VSWV9ZTikpCgpmaXRfc3VyZyA8LSBnbG0oU1VSR19URiB+IEFHRV9GICsgUFJJTUFSWV9TSVRFICsgR1JBREVfRiArIFNFWF9GICsgUkFDRV9GICsgSU5TVVJBTkNFX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GICsgRVhQTl9HUk9VUCArIFlFQVJfT0ZfRElBR05PU0lTLAogICBkYXRhID0gbm9fVWtucykKCnN1bW1hcnkoZml0X3N1cmcpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfc3VyZyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYAoKIyMgQ2hlbW8KYGBge3J9Cm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoQ0hFTU9fWU4gIT0gIlVrbiIpICU+JSAKICBkcm9wbGV2ZWxzKCkgJT4lIAogIG11dGF0ZShDSEVNT19ZTiA9IGZjdF9yZWNvZGUoQ0hFTU9fWU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgPSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiID0gIlllcyIpKSAlPiUgCiAgbXV0YXRlKENIRU1PX1lOID0gYXMuaW50ZWdlcihDSEVNT19ZTikpICU+JSAKICBtdXRhdGUoQ0hFTU9fWU4gPSBDSEVNT19ZTiAtIDEpCgpmaXRfY2hlbW8gPC0gZ2xtKENIRU1PX1lOIH4gQUdFX0YgKyBQUklNQVJZX1NJVEUgKyBHUkFERV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTlNVUkFOQ0VfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQICsgWUVBUl9PRl9ESUFHTk9TSVMsCiAgIGRhdGEgPSBub19Va25zKQoKc3VtbWFyeShmaXRfY2hlbW8pCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfY2hlbW8pLCBjb25maW50LmRlZmF1bHQoZml0X2NoZW1vLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBSYWRpYXRpb24KYGBge3J9Cm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoUkFESUFUSU9OX1lOICE9ICJVa24iKSAlPiUKICBkcm9wbGV2ZWxzKCkgJT4lCiAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGZjdF9yZWNvZGUoUkFESUFUSU9OX1lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiID0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIiA9ICJZZXMiKSklPiUgCiAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGFzLmludGVnZXIoUkFESUFUSU9OX1lOKSkgJT4lIAogIG11dGF0ZShSQURJQVRJT05fWU4gPSBSQURJQVRJT05fWU4gLSAxKQoKCmZpdF9yYWRzIDwtIGdsbShSQURJQVRJT05fWU4gfiBBR0VfRiArIFBSSU1BUllfU0lURSArIEdSQURFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOU1VSQU5DRV9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAgKyBZRUFSX09GX0RJQUdOT1NJUywKICAgZGF0YSA9IG5vX1VrbnMpCgoKc3VtbWFyeShmaXRfcmFkcykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9yYWRzKSwgY29uZmludC5kZWZhdWx0KGZpdF9yYWRzLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBJbW11bm90aGVyYXB5CmBgYHtyfQpub19Va25zIDwtIGRhdGEgJT4lCiAgZmlsdGVyKElNTVVOT19ZTiAhPSAiVWtuIikgJT4lCiAgZHJvcGxldmVscygpICU+JQogIG11dGF0ZShJTU1VTk9fWU4gPSBmY3RfcmVjb2RlKElNTVVOT19ZTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiA9ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMSIgPSAiWWVzIikpJT4lIAogIG11dGF0ZShJTU1VTk9fWU4gPSBhcy5pbnRlZ2VyKElNTVVOT19ZTikpICU+JSAKICBtdXRhdGUoSU1NVU5PX1lOID0gSU1NVU5PX1lOIC0gMSkKCgpmaXRfaW1tdW5vIDwtIGdsbShJTU1VTk9fWU4gfiBBR0VfRiArIFBSSU1BUllfU0lURSArIEdSQURFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOU1VSQU5DRV9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAgKyBZRUFSX09GX0RJQUdOT1NJUywKICAgZGF0YSA9IG5vX1VrbnMpCgoKc3VtbWFyeShmaXRfaW1tdW5vKQoKZXhwKGNiaW5kKCJPZGRzIHJhdGlvIiA9IGNvZWYoZml0X2ltbXVubyksIGNvbmZpbnQuZGVmYXVsdChmaXRfaW1tdW5vLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBBbnkgVHJlYXRtZW50CmBgYHtyfQoKIyBiZWNhdXNlIEdSQURFX0YgaXMgaW5jbHVkZWQsIHRha2luZyBvdXQgY2FzZXMgd2l0aG91dCBhc3NkIGluZm9ybWF0b2luCm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoVHhfWU4gIT0gIlVrbiIgJiBHUkFERV9GICE9ICJOQS9Vbmtvd24iKSAlPiUKICBkcm9wbGV2ZWxzKCkKCiMgMzg1MSBjYXNlcyBsZWZ0CgpmaXRfdHggPC0gZ2xtKFR4X1lOIH4gCiAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIENST1dGTFkgKyAKICAgICAgICAgICAgICAgICBEWF9TVEFHSU5HX1BST0NfREFZUyArIAogICAgICAgICAgICAgICAgIEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBISVNQQU5JQyArIElOU1VSQU5DRV9GICsgSU5DT01FX0YgKyAKICAgICAgICAgICAgICAgICBFRFVDQVRJT05fRiArIFlFQVJfT0ZfRElBR05PU0lTICsgU0lURV9URVhUICsgR1JBREVfRiwKICAgZGF0YSA9IG5vX1VrbnMpCgojIHRvb2sgb3V0IAoKc3VtbWFyeShmaXRfdHgpICMgaW5pdGlhbCByZXNpZHVhbCA9IDU4My4wNwoKZXhwKGNiaW5kKCJPZGRzIHJhdGlvIiA9IGNvZWYoZml0X3R4KSwgY29uZmludC5kZWZhdWx0KGZpdF90eCwgbGV2ZWwgPSAwLjk1KSkpCmBgYAoKIyMgTWV0YXN0YXNpcyBhdCBUaW1lIG9mIERpYWdub3NpcwpgYGB7cn0KCmZpdF9tZXRzIDwtIGdsbShtZXRzX2F0X2R4X0YgfiBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgQ1JPV0ZMWSArIAogICAgICAgICAgICAgICAgIERYX1NUQUdJTkdfUFJPQ19EQVlTICsgCiAgICAgICAgICAgICAgICAgQUdFX0YgKyBTRVhfRiArIFJBQ0VfRiArIEhJU1BBTklDICsgSU5TVVJBTkNFX0YgKyBJTkNPTUVfRiArIAogICAgICAgICAgICAgICAgIEVEVUNBVElPTl9GICsgWUVBUl9PRl9ESUFHTk9TSVMgKyBTSVRFX1RFWFQgKyBHUkFERV9GLAogICBkYXRhID0gZGF0YSAlPiUgZmlsdGVyKEdSQURFX0YgIT0gIk5BL1Vua293biIpKQoKc3VtbWFyeShmaXRfbWV0cykgIyBpbml0aWFsIHJlc2lkdWFsOiAwLjk2NTk4CgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfbWV0cyksIGNvbmZpbnQuZGVmYXVsdChmaXRfbWV0cywgbGV2ZWwgPSAwLjk1KSkpCmBgYA==